implementing sexp, not completed, and refactoring...
finished sexpr, need testing...
test passing