NEW: Add new objects IDefinition and IParser.
CHANGE: Change visibility of types.
NEW: Add new test cases.