Major reorg to use mixins for associations for unified handling