Refactoring

いろいろとリファクタリングしてみました。
が、ディレクトリ構成を変えてしまったため、diff情報がほとんど役に立ってないですね。。。
すいません。