properly implement subclass instantiation