self contained example