validate is a synchronus function what the hell was i thinking