Adapted callback struct into an array+enum

May not be "simpler" but eh.
Trying for better OSX support