public Collection<Binding> wire(BindingContext context) throws IllegalArgumentException { List<Field> boundFields = context.getAnnotatedFields(Bound.class); List<Binding> bindings = Lists.newArrayList(); for (Field field : boundFields) { Bound bound = field.getAnnotation(Bound.class); bindings.addAll(wire(bound, context, field)); } return bindings; }