initial import. let's follow the scheme from scratch approach.
http://michaux.ca/articles/scheme-from-scratch-introduction