class FunctionalSurface extends Surface<U, U, V> {

  @Override
  public V getZValue(final U x, final U y) {
    Validate.notNull(x, "x");
    Validate.notNull(y, "y");
    return _function.evaluate(x, y);
  }

  public  FunctionalSurface(final Function2D<U, V> function);

}