establish all needed function
hierarchy structure