Adding ability event and listener structure
Implementing ability event structure
GUI ability can now listen for events instead of being an ability