now produces approximately the right def