refactor compiler, ready to implement destructuring