Different solutions present themselves at different layers of abstraction. Depending on how deep and thorough is your breakdown of the situation, putting them all back together may yield different solutions.