def _defer_property(prop, module, setter=False):
    """Return a 'property' objet that links to a submodule property

    prop (str) : property name
    module (str): module name
    setter (bool, default=False) : define a setter
    returns (property) : property object

    """
    if setter:
        return property(lambda self: getattr(getattr(self, module), prop),
                        lambda self, val: setattr(getattr(self, module), prop, val))
    else:
        return property(lambda self: getattr(getattr(self, module), prop))