separated out bindings and wrappings
implemented iterators