Factory learning environment and code from LispCast Clojure core.async Videos.