further enhancements to the implementations + added a third (work in progress)