Typed structs and value objects
