starting to implement stack based evaluation to avoid Go callbacks