Added IParser interface.
Modified design slightly to minimise exposure of list-based properties (List to IEnumerable).