setup and implement the model interface
psr2 fixes