Refactored the module interface.