refactored features and ensured correct events are beign fired