         return try drop.view.make("blog/tag", parameters)
     }
     
-    func authorViewHandler(request: Request, author: BlogUser) throws -> ResponseRepresentable {
+    func authorViewHandler(request: Request, authorUsername: String) throws -> ResponseRepresentable {
+        guard let author = try BlogUser.query().filter("username", authorUsername).first() else {
+            throw Abort.notFound
+        }
+        
         return try viewFactory.createProfileView(user: author, isMyProfile: false)
     }
     

        drop.group(pathCreator.blogPath ?? "") { index in
            index.get(handler: indexHandler)
            index.get(blogPostsPath, String.self, handler: blogPostHandler)
            index.get(tagsPath, BlogTag.self, handler: tagViewHandler)
            index.get(authorsPath, BlogUser.self, handler: authorViewHandler)
        }
    }
    

        return try drop.view.make("blog/blogpost", parameters)
    }
    
    func tagViewHandler(request: Request, tagName: String) throws -> ResponseRepresentable {
        guard let tag = try BlogTag.query().filter("name", tagName).first() else {
            throw Abort.notFound
        }
        let posts = try tag.blogPosts()
        
        var parameters: [String: Node] = [
