A Theory Of Social Machines