[ADD] You can set default language by a closure
[UPDATE] Sanitize key string before getting parsed
handled undefined provider
refactored to comply to bono spec