implements argument validate