throw errors instead of println