Issue 21 - Behavior communication and custom events

This PR adds built-in support for custom events, encouraging good practices and ease of use.

More specifications of this are described on #21