Move demo to its own directory
Add another syntax for sending messages
Rename internal attributes for better hiding
Rename 'error' to 'throw'