This should improve performance and browser compatibility. We could probably use an external library/framework for this like phaser.io.