One problem in assessing language performance is that it must address the many factors related to the contexts in which language is used. According to Bialystok (1998), any definition of language proficiency is deeply entangled in theoretical attitude. On the one hand, there is the formalist approach, which attempts to explain language as code. According to this perspective, "language proficiency is an ultimately unknowable abstraction that reflects the universal competence of native speakers" (p. 502). On the other hand, there is the functionalist approach, which explains proficiency in its relationship to communication in specific contexts. In this respect, it is "the outcome of social interaction with a linguistic environment" (p. 502). In conversation, often both parties assume some common knowledge and take advantage of verbal and nonverbal communication; however, in written discourse, common knowledge cannot be assumed; therefore, the writer may need to provide more background information in order to communicate clearly.