structs revamp