refactored - broke contents of evaluate(Term) onto smaller methods
lazy load arithmetic functions - resolves #74