Updated to use a function
Updated to use a class
Using a module as a mixin
Using a module as a namespace