Changed syntax (use $ to not conflict with possible members).
Added support for hooks (it was wrongly named middleware).
Added support for mixins.