Fix #16: Implement ActivityWorker actor