Adding languages

this is adding the language data list as well as refactoring things so that it is easier when we add the future data-lists.
if you're going to describe the fully namespaced class you probably don't need to put it in all of the modules above