Use anonymous listeners to pipe to protected methods, make tab commands be
constants