examples and explanation added