implement new data object and wrapper for easier access

implement all events