introcuding the actor pattern