While this may be great for general use, it may be worth keeping both modes depending on what you're doing. Having a limited vocabulary based on input commands is great (better if it parses those and auto-generates the library at startup if it's changed); but if someone wants to use it for entry for say a text message, it may be desirable to have more words and less accuracy.