some parameter checking