Do you expect value to be recalculated each time you change cost? If so it's wrong. You need to add setInsuranceValue() call to method where you set cost.