split out definitions for actor and actor_component to avoid circular references.