Refactor

bit of refactoring so we can extend Channel later as we find necessary