Revert 1362fa5..7336b1a

This rolls back to commit 1362fa52b20ce43aa48c00ed5f55e4fa8c16c17b.
Revert ef54a35..b5a4f04

This rolls back to commit ef54a35c37d00bb137d4681ef06aec5cef15ba24.
Revert 2761baf..7c578e5

This rolls back to commit 2761baff0c031c8c224183ee34d36fccad6e345c.
Revert 0550f4e..6ef52ce

This rolls back to commit 0550f4e94cbcf537e1f3dd29a6c66a131758005b.
Revert ddfe29c..e230392

This rolls back to commit ddfe29c7aa70795b4f7e200d1b31149384dc6374.
some changes
Revert 7336b1a..a1795aa

This rolls back to commit 7336b1aa9c38ea0a1d2ac5020b44c3f413783bda.
speed loss fixed