(resource use analysis)
* refactored the code
* enhanced the test cases
* ignore aggregate types and focus on their non-aggregate members