create models and controllers
implement subs