v2.2 updated - replaced controllers with mixin