処理の共通化を図り、Factoryを追加