should propagate exceptions if needed