Moved language module out into its own file