Should we just pass `data` as a third argument instead of its three attributes?