Impact of Refactoring on Software Quality