decomposed big method