js は実装と離れすぎてる