trying to make errors more testable
simplified call handling