inheritable model class