enable to use without metaclass