private IExpressionDescription add(final String key,final IExpressionDescription expr){
  Facet f=new Facet(key,expr);
  Facet[] ff=new Facet[facets.length + 1];
  System.arraycopy(facets,0,ff,0,facets.length);
  facets=ff;
  facets[facets.length - 1]=f;
  return expr;
}

private IExpressionDescription add ( final String key , final IExpressionDescription expr ) { Facet f = new Facet ( key , expr ) ; Facet [ ] ff = new Facet [ facets . length + 1 ] ; System . arraycopy ( facets , 0 , ff , 0 , facets . length ) ; facets = ff ; facets [ facets . length - 1 ] = f ; return expr ; }
adds the facet without performing any check , assuming it is not present in the map
