added fast action, and refactored key update code to be more concise