Initial version in common lisp.