[WIP] Initial work on estep refactor for more code reuse.