added module_function and comments