getRemaining() function and max is no longer final