basic Controller based application, TODO: add model & view layer