added type checking to evaluator, at a basic level
some improvements. recursion isn't working and needs some thought.