card refactoring decorator