passes syntax check, semantics still need to be updated.