create container classes for generics to allow proper serialization and deserialization with gson and jackson