@classmethod
def _init_mgr(cls, mgr, axes=None, dtype=None, copy=False):
    """ passed a manager and a axes dict """
    for a, axe in axes.items():
        if axe is not None:
            mgr = mgr.reindex_axis(axe, axis=cls._get_block_manager_axis(a),
                copy=False)
    if copy:
        mgr = mgr.copy()
    if dtype is not None:
        if len(mgr.blocks) > 1 or mgr.blocks[0].values.dtype != dtype:
            mgr = mgr.astype(dtype=dtype)
    return mgr
