implement et and em channels, clean up Demo.cpp a bit