add a spinner
handle error from bad url
better input naming