Code updates after review: 
1 add more unit test case. 
2 add enum
3 peek message add next handle support
4 get count only return not expired message