create a new object each time so we can cache info during the request