another style nitpick, but I prefer these embedded types to be at the top of the struct definition