Started making progress on refactoring #34
Further refactoring as per #34
Almost finished refactoring. #34.  Also:

* now using datetime.datetime objects throughout
Using list for channels instead of dict
Some more light refactoring.  Closes #34