* use forward decl for ICharacter