initial implementation with passing tests; yet to fix mixin
Implemented default primary key in mixin
pre-merge commit