no reason these structs need to be exported