split excess card check to separate function