decompose code into separate files