put structs each into their own package to avoid name-space conflicts