improve error cases