@classmethod
def _new(cls, local_class, cache_class):
    """ when constructing a new remote using _new you MUST
            call init afterward to bind the remote api """
    newcls = type(cls.__name__, (cls,), dict(_local_class=local_class,
        _cache_class=cache_class))
    local_class._remote_class = newcls
    local_class._cache_class = cache_class
    cache_class._remote_class = newcls
    cache_class._local_class = local_class
    newcls.weighAnchor()
    cache_class.weighAnchor()
    return newcls
