refactor LazyChannel