make sure value is calculated at all times