moving serialization into storage to allow dynamic types lookup