Refactoring for #137 part 1 - moving mixin solving into separate class