Moved a bunch of code from shared into mixins to modularise it
Created an options call to normalise options objects
Non private methods renamed
Latest test updates