decomposing a problem