code: private static synchronized <D,S> IMapper<D,S> createMapper(MapperBuilder mapper) throws Throwable{
  	    
  		Class<Mapper<D,S>> mapperClass = mapper.exist()?mapper.<D,S>get()
  				                                       :mapper.<D,S>generate();
  		return mapperClass.newInstance();
  	}
docs: This method is synchornized to avoid creations of the same instance
  @param mapper mapper generator
  @return mapper instance
  @throws Throwable