Adding custom event and action system