Why do we need to returnValue?