start improve error handling