add validate function