better cast test
using two phases, one for global symbols from cpp, the other for orig source
notes