オブジェクト指向的な形を整えました。が、こんなことをするよりもテストコードを書いて汚くても実際のコードを書くべきです。