code: protected Check<T> newCheck(final String id, final IModel<T> model, final int index)
  	{
  		final Check<T> check = new Check<T>(id, model)
  		{
  
  			/**
  			 * The serialVersionUID.
  			 */
  			private static final long serialVersionUID = 1L;
  
  			/**
  			 * {@inheritDoc}
  			 */
  			@Override
  			public IModel<String> getLabel()
  			{
  				return Model.of(getChoiceLabel(getModelObject()));
  			}
  
  			/**
  			 * {@inheritDoc}
  			 */
  			@Override
  			protected boolean getStatelessHint()
  			{
  				return true;
  			}
  
  			/**
  			 * {@inheritDoc}
  			 */
  			@Override
  			public String getValue()
  			{
  				return getChoiceValue(getModelObject(), index);
  			}
  		};
  		return check;
  	}
docs: Factory method for create a new {@link Check}. This method is invoked in the constructor from
  the derived classes and can be overridden so users can provide their own version of a new
  {@link Check}.
  
  @param id
  the id
  @param model
  the model
  @param index
  the index
  @return the new {@link Check}.