Added some more caching and improved the language comparison query