Refactor some naming, made a class abstract
Remove old testing code, more refactor
Remove debug code, update qn list test