added stateful button presses and chording