diff --git a/crates/ra_ide_api/src/display.rs b/crates/ra_ide_api/src/display.rs
index f0c81893306..7a1f40fcfb1 100644
--- a/crates/ra_ide_api/src/display.rs
+++ b/crates/ra_ide_api/src/display.rs
@@ -1,5 +1,5 @@
-//! This module contains utilities for rendering turning things into something
-//! that may be used to render in UI.
+//! This module contains utilities for turning SyntaxNodes and HIR types
+//! into things that may be used to render in a UI.
 use super::*;
 use std::fmt::{self, Display};
 use join_to_string::join;
@@ -8,8 +8,10 @@ use std::convert::From;
 use hir::Docs;
 
 pub mod navigation_target;
+pub mod structure;
 
 pub use navigation_target::NavigationTarget;
+pub use structure::StructureNode;
 
 pub(crate) fn function_label(node: &ast::FnDef) -> String {
     FunctionSignature::from(node).to_string()
diff --git a/crates/ra_ide_api/src/snapshots/tests__file_structure.snap b/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap
similarity index 97%
rename from crates/ra_ide_api/src/snapshots/tests__file_structure.snap
rename to crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap
index 2efa8e22cb3..32dd994849e 100644
--- a/crates/ra_ide_api/src/snapshots/tests__file_structure.snap
+++ b/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap
@@ -1,7 +1,7 @@
 ---
-created: "2019-02-05T22:03:50.763530100Z"
-creator: insta@0.6.1
-source: crates/ra_ide_api/src/structure.rs
+created: "2019-04-08T09:44:50.196004400Z"
+creator: insta@0.7.4
+source: crates/ra_ide_api/src/display/structure.rs
 expression: structure
 ---
 [
diff --git a/crates/ra_ide_api/src/structure.rs b/crates/ra_ide_api/src/display/structure.rs
similarity index 100%
rename from crates/ra_ide_api/src/structure.rs
rename to crates/ra_ide_api/src/display/structure.rs
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs
index d76012a8c83..974820a6947 100644
--- a/crates/ra_ide_api/src/lib.rs
+++ b/crates/ra_ide_api/src/lib.rs
@@ -33,7 +33,6 @@ mod folding_ranges;
 mod line_index;
 mod line_index_utils;
 mod join_lines;
-mod structure;
 mod typing;
 mod matching_brace;
 mod display;
@@ -69,9 +68,8 @@ pub use crate::{
     line_index_utils::translate_offset_with_edit,
     folding_ranges::{Fold, FoldKind},
     syntax_highlighting::HighlightedRange,
-    structure::{StructureNode, file_structure},
     diagnostics::Severity,
-    display::{FunctionSignature, NavigationTarget},
+    display::{FunctionSignature, NavigationTarget, structure::{StructureNode, file_structure}},
 };
 
 pub use ra_db::{
@@ -385,7 +383,7 @@ impl Analysis {
     /// file outline.
     pub fn file_structure(&self, file_id: FileId) -> Vec<StructureNode> {
         let file = self.db.parse(file_id);
-        structure::file_structure(&file)
+        file_structure(&file)
     }
 
     /// Returns the set of folding ranges.