character creation refactoring