added Go lang inspired Channel class