channels/drive: refactoring