Improved, now modules don't load till they are required