basic refactoring + fullChoicesMatrix bug fixed