Added tests and an Event enum.