@SuppressWarnings( "unchecked" )
public <T> ValueBuilder<T> newValueBuilderWithPrototype( T prototype )
{
NullArgumentException.validateNotNull( "prototype", prototype );
ValueInstance valueInstance = ValueInstance.valueInstanceOf( (ValueComposite) prototype );
Class<Composite> valueType = (Class<Composite>) first( valueInstance.types() );
ModelModule<ValueModel> modelModule = typeLookup.lookupValueModel( valueType );
if( modelModule == null )
{