Struct with behaviour