move the decision making about which dc client should make a request to the server-side instead of client-side, move the data migrating and replicating to another class, fix bug in randomly choose the file to make a request