be more explicit about API vs implementation

protected stuff is called from the superclass, private is private
to this implementation.
remove lots of code

the superclass is already idempotent and does converge_by and
stuff.  most of the double-checking here is redundant redundancy.