anchor.diff:                      | :? PhotoPost as photo -> yield TumblrPhotoPostWrapper(client, photo) :> IPostBase
                       | :? TextPost as text -> yield TumblrTextPostWrapper(client, text) :> IPostBase
                       | _ -> ()
  -        }
  -        return {
  -            Posts = wrapped
  -            Next = skip + (int64 take)
  -            HasMore = posts.Result.Length > 0
  -        }
  +            skip <- skip + posts.Result.LongLength
  +            more <- posts.Result.LongLength > 0L
       }
   
  -    override this.Whoami = async {
  -        return blogName
  -    }
  -
  -    override this.GetUserIcon size = async {
  +    override __.FetchUserInternal() = async {
           let blogHostname =
               if blogName.Contains(".") then
                   sprintf "%s.tumblr.com" blogName
               else
                   blogName
  -        return sprintf "https://api.tumblr.com/v2/blog/%s/avatar/%d" blogHostname size
  +
  +        return {
  +            username = blogName
  +            icon_url = Some (sprintf "https://api.tumblr.com/v2/blog/%s/avatar/64" blogHostname)
  +        }
       }
positive.code: 
  open DontPanic.TumblrSharp.Client
  open DontPanic.TumblrSharp
  
  [<AbstractClass>]
  type TumblrPostWrapper<'T when 'T :> BasePost>(client: TumblrClient, post: BasePost) =
  
negative.code:     override __.HTMLDescription = post.Body
  
  type TumblrSourceWrapper(client: TumblrClient, blogName: string, photosOnly: bool) =
      inherit AsyncSeqWrapper()
  
      let blogNamesTask = lazy(
          let a = async {
              let! user = client.GetUserInfoAsync() |> Async.AwaitTask
              return user.Blogs |> Seq.map (fun b -> b.Name)
          }
          Async.StartAsTask a
      )
  
      override __.Name =
          if photosOnly then
              "Tumblr (photos)"
          else
              "Tumblr (text + photos)"
      
      override __.FetchSubmissionsInternal() = asyncSeq {
          let! blogNames = Async.AwaitTask (blogNamesTask.Force())
          let t = if photosOnly then PostType.Photo else PostType.All
  
          let mutable skip = 0L
          let mutable more = true
          while more do
              let! posts =
                  client.GetPostsAsync(
                      blogName,
                      skip,
                      20,
                      t,
                      true) |> Async.AwaitTask
  
              for post in posts.Result do
                  let postBlogName =
                      if not (isNull post.RebloggedRootName)
  