Add user pointer to callback.
Add include guard.
Add gitignore.