refactoring to use bind everywhere