Issues #5 ロジックの共通化