* add garbage collection
* add retry