begin implementation of simple engine, including separation into model and view components and completion of controller and view components