start breaking option sets out into structs