refactoring to CompositeWeaverBuilder