CN - Small optimistation so that variables only caclutated if they need to be.