クラスを分割して実装し直した