start refactoring default channel infrasturcture so it can be made an extension