Try to implement plugin system (based on events)