vim.coffee could work with any commands, modes and escapeCommand. To me it does not make sense to specialize that abstraction by editing its code: I think it should be done programmatically somewhere. But I agree that it is perhaps a bit cumbersome having to  pass all three of those each time we need a new instance. Perhaps the three should be assigned to `Vim`'s prototype, such as `Vim::commands = commands`, somewhere, probably in bootstrap.coffee or in commands.coffee and modes.coffee?