The database failure handling is not that great. Would be better to do some additional logging and atleast return something more presentable on GUI when it fails due to bad URL or bad data.