bindings refactor and simplification down to just the necessary bindings and tests.
New names for binding implementations and other refactoring.
Code review changes.