a little refactor to remove model superclass