Added some upgrade stuff and a little bit of refactoring
Added break event handling and event forwarding
Added upgrade event handling stuff