overhaul to include error handling