             
         case ProfileSection.SocialAccount.rawValue:
 
-            if let providerName = profileUser?.providerNameWithIndexPath(indexPath), socialAccount = SocialAccount(rawValue: providerName) {
+            if indexPath.item == 0 {
+
+                let cell = collectionView.dequeueReusableCellWithReuseIdentifier(socialAccountBlogCellIdentifier, forIndexPath: indexPath) as! ProfileSocialAccountBlogCell
+
+                return cell
+            }
+
+            let index = indexPath.item - 1
+
+            if let providerName = profileUser?.providerNameWithIndex(index), socialAccount = SocialAccount(rawValue: providerName) {
 
                 if socialAccount == .Github {
                     let cell = collectionView.dequeueReusableCellWithReuseIdentifier(socialAccountGithubCellIdentifier, forIndexPath: indexPath) as! ProfileSocialAccountGithubCell

            return needSeparationLine ? 1 : 0
            
        case ProfileSection.SocialAccount.rawValue:
            return profileUser?.providersCount ?? 0

        case ProfileSection.SeparationLine2.rawValue:
            return 1

        return nil
    }

    func providerNameWithIndex(index: Int) -> String? {

        var providerName: String?

        switch self {

        case .DiscoveredUserType(let discoveredUser):
            if let provider = discoveredUser.socialAccountProviders.filter({ $0.enabled })[safe: index] {
                providerName = provider.name
            }

        case .UserType(let user):

            if user.friendState == UserFriendState.Me.rawValue {
                if let provider = user.socialAccountProviders[safe: index] {
                    providerName = provider.name
                }

            } else {
                if let provider = user.socialAccountProviders.filter("enabled = true")[safe: index] {
                    providerName = provider.name
                }
            }
