adding SubChannel class and tests