combine different modules