tests, tests and more tests for constructors. Also some cleanups and event implementations