Cleanup, adding more tests, adding a None object, fixing various behaviours
it appears to be legal to set an unknown variable to a value