Implement wrap_with for components