split the code into separate portions/classes