introduce paramas to clean up argument setting.