added option to pass a block that executes before setting the value
version bump