refactored CharacterProfile