Changed functions to accept void pointers.

This will allow functions to accept arbitrary parameters.  If we need
multiple parameters, we can use a struct that contains all of them.