improved example, updated versions