validation overhaul

i dont know if this is going to work