reworked single step to adhere to new memory events system
keep this, sync with upstream