Overhaul the logic behind getting budgets so it happens in one shot.