Completed Expression class implementation. Untested. No interface.