Added events trait
Refactored data providers a bit