passed around the classes, with controller at center stage