refactor lang