compiles (i don't know how to spell struct apparently)