uses stderr if error