refactored language handling and moved properties to shared lib directory