added recalculation