We don't support passing a NULL keymap any longer. Also pull some precondition checks into the parent class.