正しく動かないが、一通り実装
正しく動作するようになった