rectangle as struct