* looking for the sweetspot between opaque data types,
  reading header files from multiple sources and avoiding
  getter/setter functions for every data structure... ugh