An object oriented 2D game-engine in Clojure