I'm not done (cherry picked from commit be88d0ed7e9857e31a33d74c0325952e942cc675)
it raised an exception in my case, and I'm fairly sure this is how it's supposed to work also adds a complimentary hidden reset at the end (cherry picked from commit eeb68cb6c67beb1f50b4ae98ea9510f55dd52802)
(cherry picked from commit 2e17dd258223bdecbacbc415eb307fcc54ac2401)
(cherry picked from commit 78230893a8de70ea443e4e6730c0516fb651d4fb)