refactored actor types, now control method is a parameter instead of a subtype