opaque struct and add includes