updated events API and added tons loads of listeners. Use this method of implementing listeners!