Modularization, devided into different files.