refactor room sub-classes with super init