initial work on multi-channel button class
misc updates