go style channel implementation