updated with examples