Decomposing Code into Components