cleanup
check that expression doesn't contain errors
improve introduce variable