Refactor engine reconciler and add tests!

How about just adding this to needScheduling here?