improve arguments validation