Prototype

ある程度リファクタリングしたのでpr