Updated mouse handling to be done through Observer pattern.