class AnnotationBinder {

    public static void bind(final Object object, ICS ics) {
        if (object == null) {
            throw new IllegalArgumentException("Object cannot be null.");
        }
        if (ics == null) {
            throw new IllegalArgumentException("CS cannot be null.");
        }
        Class<?> c = object.getClass();
        // all annotated fields.
        while (c != Object.class && c != null) {
            for (final Field field : c.getDeclaredFields()) {
                if (field.isAnnotationPresent(Bind.class)) {
                    bindToField(object, ics, field);
                }

            }

            c = c.getSuperclass();
        }
    }

}