EventManager allows functions to be continuesly executed at different times without creating seperate threads for each.