Initial engine implementation, need to create a matrix class and finish the device renderer.