module hierarchy