resource data struct refactoring