support for multiple shortcuts and fewer listeners