improve data structure hierarchy