todo
Used background-image & background-size to simplify image sizing and positioning.
Made behavior more modular.  Keypress and click event handlers can now be set like any other property.