refactor parent done, need apply the same refactor to all other thing types