+ handle unparsed root nodes, just like handling unparsed program nodes
+ use a Properties dictionary to hold the Program metadata
+ update intefaces with generic versions
+ add support to cancel parseing when main form is closed
+ use a MarshalByRefObject
+ add support to save and read serialized Program/Channel data
+ basic layout for Program entries
+ implement channel parsing
+ add interaces.cs