using operator() instead of .at() function
encapsulate the channel data members and add a performance test helper
add helper function for timing functions