this makes it possible to pass some generic pointer that's given back as an argument when the callback is called.