initial from microlisp project