add metaclass