use images to cache sprites instead of canvas, seems more optimal: http://jsperf.com/draw-canvas-vs-draw-image