Dyflexis interview question

Software design, refactoring and implementation