private List<ComponentDependency<?>> componentDependencies = new ArrayList<ComponentDependency<?>>();
public void setImplementation(Class< ? extends T> implementation)
{
this.implementation = implementation;
}
<BUG>public Class<  ? extends T> getImplementation()
{</BUG>
return implementation;
}
public void setInstantiationStrategy(ComponentInstantiationStrategy instantiationStrategy)

private List<ComponentDependency<?>> componentDependencies = new ArrayList<ComponentDependency<?>>();
public void setImplementation(Class< ? extends T> implementation)
{
this.implementation = implementation;
}
public Class<? extends T> getImplementation()
{
return implementation;
}
public void setInstantiationStrategy(ComponentInstantiationStrategy instantiationStrategy)
