merge Junsongs repo: add macro to write modules
change the core MetaDict from hash of CVal and CVal to CVal and address, and fix issue #32