required all necessary modules