eval is evil; also fix numeral constants