(refactor) documentation and implementation changes.