add new modules
a few change
okay i accept this change
delete some redundance