tweaks to make basic defines work
rename top-level eval() to read()