promises everywhere
channels refactoring
channels refactoring, more work to go