CS 4250 refactoring project