resource data struct refactoring3 inherit