The first part task of adding additional support for lanugage and user agents.

I will be going back to add the feature to support lanugage support.