class HaloCore {

    @NonNull
    public List<HaloSegmentationTag> segmentationTags() {
        StringBuilder builder = new StringBuilder("\n");
        builder.append("-------------------- USER TAGS --------------------\n");
        List<HaloSegmentationTag> segmentationTags = new ArrayList<>(mTagCollectors.size());
        for (TagCollector collector : mTagCollectors) {
            HaloSegmentationTag tag = collector.collect(mFramework.context());
            if (tag != null) {
                builder.append(tag.toString()).append("\n");
                segmentationTags.add(tag);
            }
        }
        builder.append("-------------------- USER TAGS --------------------\n");
        //Log the tags being sent
        Halog.d(getClass(), builder.toString());
        return segmentationTags;
    }

    public  HaloCore(@NonNull HaloFramework framework,
                    @NonNull HaloManagerApi managerApi,
                    @NonNull HaloSessionManager sessionManager,
                    @Nullable Credentials credentials,
                    @Nullable List<TagCollector> tagCollectors);

}