utility library for controlling updates to structs