A special thanks goes to @aerouk for almost all of the changes found here.
Added a "BlockExpEvent" to hold experience and the handlers for the events