Should just be returning rather than setting `data`. CPs cache their return values.