accept custom N from argument