canAfford refactor on request