character and battle refactored