add Channel class which is basically a SizedQueue with a default arg
require thread by default