An experienced language teacher chooses from a variety of teaching methods based on a student's objectives, learning style, and context. Major methods include grammar translation, direct method, audio-lingual method, cognitive code approach, communicative language teaching, and the natural approach. Each method has a different vision of language learning and uses specific techniques, materials, and sequences. A principle eclectic approach integrates suitable techniques for each task and learner.