specializable structs, first pass