split the code into multiple files