made everything a struct