stubbed out potential concept behind checkpoint and cleaned up some dup code

Cleaned up some dup code by pulling out a method.
yield return collections now rather than single... we may want to move
back to our old get from revision implementation