Extract common logic into shared methods