refactoring binding weavers