changed event_tuple construtor to use initialization list
Created mirrors classes to avoid virtuality