[NEW] add a cache mechanism in UMessage class to reduce mem. footprint
[FIX] change PMsg to inherit from UMessage to reduce mem. footprint