return value instead of pointer on eval