add custom error handling