Upgraded to support multilingual. Big tidyup.