Add new tests and event driven model