private void register( Class<?> clazz ) throws IllegalStateException
   {
	   if ( cachedDependencies.containsKey( clazz ) )
		   return;
	   Set<Class<?>> inProgress = cycleDetect.get();
	   if ( inProgress == null )
	   {
		   inProgress = new HashSet<Class<?>>();
		   cycleDetect.set( inProgress );
	   }
	   if ( inProgress.contains( clazz ) )
	   {
		   throw new IllegalStateException( "Cyclic dependency detected on attempt to inject an instance of " + clazz );
	   }
	   else
		   inProgress.add( clazz );
   }