refactor Lang model, minor design update