Implement if
Clean up eval
Clean up primitives