add self-contained example