separate language and interface modules