more better refactoring to support on message servicing