specifications for values should be functions too and get the mapper passed to them