much more simplified and flexible controller and view structure