@classmethod
def serialisable(cls, key, obj):
    """Determines what can be serialised and what shouldn't
        """
    if key.startswith('_Serialisable'.format(cls.__name__)):
        return False
    if key in obj.__whitelist:
        return True
    if '__' in key:
        return False
    if key in obj.__blacklist:
        return False
    if callable(getattr(obj, key)):
        return False
    if hasattr(obj.__class__, key):
        if isinstance(getattr(obj.__class__, key), property):
            return False
    return True
