decompose further
composed method #future
reduce branches
group functionality