use fetch instead of set
add a few comments