Software samples for demonstrating refactoring and redesign