next time some needs to modify this file for some other module, this has to be rewritten in a proper function. but it's ok for now.