add validate funciton