+ rewrote button class prototype to better handle mouse events and object selection