refactoring gilded rose kata