adding event manager - need to move the handling of calculating changes and stuff to a new module