Fully implemented language choosing and swapping.
Also fixed #4. Consider fixed #1