クラス分割とテストを追加しました。