refactored character