equals and hashCode() for Position
Add events + fix event handler

Event handler was not firing for events that have no hooks