lots of cleanup. adding Eventful