Thank you very much for your feedback.
I have encountered the circular dependency problem in the beginning. In order to prevent it, only launcher project can reference other projects and more important, all handlers (Handlers.cs) are made static. Under this condition, message project can pass...