refactoring, add retry requests, see #13