call init functions in the proper order