Added new overloads.
Every function returns a new offset now.
Added serialize and deserialize functionality.
Made public functions virtual.
Fixed a lot of interfaces according to #27.