@SuppressWarnings("unchecked")
		public MemberAccessorFactory(final Class<? extends Annotation> anno_clazz) throws SecurityException, NoSuchMethodException {
			Class<? extends MemberAccessor> clazz = null;
			for (final Class<?> c : anno_clazz.getDeclaredClasses()) {
				if (MemberAccessor.class.isAssignableFrom(c)) {
					clazz = (Class<? extends MemberAccessor>) c;
					break;
				}
			}
			
			if (clazz == null)
				throw new UnsupportedOperationException(anno_clazz + " does not contain a sub-class of " + MemberAccessor.class + ", or not have a suitable constructor(" + BinaryAccessorFactory.class + ", " + Field.class + ")");
			
			_ctor = clazz.getConstructor(BinaryAccessorFactory.class, Field.class);
			_ctor.setAccessible(true);
			
			if (!anno_clazz.isAnnotationPresent(SupportType.class))
				_support_type = null;
			else
				_support_type = new HashSet<Class<?>>(Arrays.asList(anno_clazz.getAnnotation(SupportType.class).value()));
		}