You use lots of structs, construct with Create() functions and destroy with Destroy() functions.

Polymorphism is achieved with pointers to functions.