changed everything back to `data`, you're right, should remain generic