Done some major refactoring: abc classes, mixins and method restructuration