fix
separate parser as a standalone file
support read scheme code from file
misc update