refactored language stuff