simplified exercise doesn't need UDF anymore