mini implementation of scheme