tile now handles events on itself, wow much OOP