* reorganize code
* more tests
* fix quote
* fix defun (don't remove env )