change the internals of Bind to support additional use cases