Might be worth noting that this module must be extended rather than included - superclass usage below appeared to be a mistake until I realized this.