def _count_objs(self, obj, path=None, **kwargs):
        """
        cycles through the object and adds in count values

        Args:
        -----
            obj: the object to parse
            path: the current path

        kwargs:
        -------
            current: a dictionary of counts for current call
            sub_val: the value to use for subtotal aggregation

        """
        sub_val = None
        # pdb.set_trace()
        if isinstance(obj, dict):
            for key, value in obj.items():
                if isinstance(value, (list, dict)):
                    kwargs = self._count_objs(value,
                                              self.make_path(key, path),
                                              **kwargs)
                else:
                    if self.make_path(key, path) == self.sub_total:
                        # pdb.set_trace()
                        sub_val = value
                    kwargs['current'] = self._increment_prop(key,
                                                             path,
                                                             **kwargs)
        elif isinstance(obj, list):
            for item in obj:
                if isinstance(item, (list, dict)):
                    kwargs = self._count_objs(item, path, **kwargs)
                else:
                    if path == self.sub_total:
                        pdb.set_trace()
                        sub_val = item
                    kwargs['current'] = self._increment_prop(path, **kwargs)
        else:
            kwargs['current'] = self._increment_prop(path, **kwargs)
            if path == self.sub_total:
                pdb.set_trace()
                sub_val = item
        if kwargs.get('sub_val') is None:
            kwargs['sub_val'] = sub_val
        return kwargs
cycles through the object and adds in count values

        Args:
        -----
            obj: the object to parse
            path: the current path

        kwargs:
        -------
            current: a dictionary of counts for current call
            sub_val: the value to use for subtotal aggregation