Abstracting engine further; redefining some class responsibilities; implementing 3d rendering capability and abstracting timer