extended example with versioning