changed class structure to match new model, added event call communication