add MessageResource and test cases
merge with remote