self in struct