Refactored interaction to be more uniform
Merged in with origin/parser-integ