keep reorganizing, expose json on main view, setup views and models to output different formats