split up into views and sub-views, simpler models