added more tests for coverage, fixed some issues with the mixins not overloading ObjectMixin methods
near 100% test coverage (only remaining lines b/c I'm considering changing how they work)
python 3 compat