more detail and examples