add ooap metaclass