added a RuleEngine, refactored Character
rule engine refactor