class HttpCopier implements PushToCloudCommand.Copier {

    int importStatusProgressEstimate( String databaseStatus, long elapsed, long importTimeEstimateMillis )
            throws CommandFailed
    {
        switch ( databaseStatus )
        {
        case "running":
            return 0;
        case "loading":
            int loadProgressEstimation = (int) Math.min( 98, (elapsed * 98) / importTimeEstimateMillis );
            return 1 + loadProgressEstimation;
        default:
            throw new CommandFailed( String.format(
                    "We're sorry, something has failed during the loading of your database. "
                            + "Please try again and if this problem persists, please open up a support case. Database status: %s",
                    databaseStatus ) );
        }
    }

      HttpCopier( OutsideWorld outsideWorld );
      HttpCopier( OutsideWorld outsideWorld, Sleeper sleeper, ProgressListenerFactory progressListenerFactory );

}