splited the code in modules