Add support for unsigned char type
Better parsing
When unreffing make sure to unref
When downcasting go up searching for the function
Check the pointer before setting it
When getting a struct make sure to create it

For out parameters the struct must be passed in.
If the struct is not created by the user create it
Update the definition