refact(share): isolated sharing logic

Refactored sharing logic to separate logic belonging to sharing form logic to create the messages.

Closes #11