resource data struct refactoring3.1 inherit