updated with examples and refs