alternative error propagation