Actor logic externalized to separate classes