Structures passing to DM callbacks as userData used to be defined in both callee and callbacks itself which made it difficult and unsafe to add new properties to user data. Added typedefs for this structures and use them in callbacks and callee functions.