I have a kind of similar approach, but I bind my keys at runtime to 'actions'.