begin work on evaluate()