最低限までのところまでは書きなおし&実装