so much validation