iterated version to include some typo corrections