Moral reasoning is the process of determining right or wrong in a given situation. According to the American psychologist, Lawrence Kohlberg, people develop through three levels of moral reasoning as needed by situations they encounter. The lowest level of development involves making decisions of morality based on the prospect of punishment - in other words, by trying to avoid getting punished. At the second level a person perceives an absolute right and wrong and believes the law is the judge of morality. A person has reached the highest level when they make moral choices based on social contracts, or unspoken agreements to behave a certain way, and when they can generalize ethical principals beyond their own interests. This is a more abstract type of reasoning and not one based on simple ideas such as trying to avoid punishment.