A new approach. We're passing around a pointer to a context struct set up on the C side