Add new design for models

Try to restructure the models to a simpler pattern