Split the project into various files to be clearer when writing