Initial separation of an interpreter.
Update TODO list.
Make Parser a proper singleton.
Refactor duplicated code in Parser.