diff --git a/.gitignore b/.gitignore
index 9263a1ed65..319db40d15 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
_site
.DS_Store
+.project
+.settings
diff --git a/_includes/tutorial-toc.txt b/_includes/tutorial-toc.txt
new file mode 100644
index 0000000000..a407ce0e6d
--- /dev/null
+++ b/_includes/tutorial-toc.txt
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/_layouts/tutorial.html b/_layouts/tutorial.html
new file mode 100644
index 0000000000..2e260e6e58
--- /dev/null
+++ b/_layouts/tutorial.html
@@ -0,0 +1,26 @@
+---
+layout: default
+---
+{% include header.txt %}
+{% include topbar.txt %}
+
+
+
+
+
{{ site.title }}
+ {% if page.title %}
{{ page.title }}
{% endif %}
+
+
+ {{ content }}
+ {% if page.disqus == true %}{% include disqus.txt %}{% endif %}
+
+
+
+ {% include tutorial-toc.txt %}
+
+
+
+
+
+
+{% include footer.txt %}
diff --git a/tutorials/tour/abstract-types.md b/tutorials/tour/abstract-types.md
index c2b3aba42a..3557d6fab9 100644
--- a/tutorials/tour/abstract-types.md
+++ b/tutorials/tour/abstract-types.md
@@ -1,6 +1,7 @@
---
layout: overview
title: Abstract Types
+tutorial: scala-tour
---
In Scala, classes are parameterized with values (the constructor parameters) and with types (if classes are [generic](generic-classes.html)). For reasons of regularity, it is not only possible to have values as object members; types along with values are members of objects. Furthermore, both forms of members can be concrete and abstract.
diff --git a/tutorials/tour/anonymous-function-syntax.md b/tutorials/tour/anonymous-function-syntax.md
index c7777514ef..680bfaf2d6 100644
--- a/tutorials/tour/anonymous-function-syntax.md
+++ b/tutorials/tour/anonymous-function-syntax.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Anonymous Function Syntax
---
diff --git a/tutorials/tour/automatic-closures.md b/tutorials/tour/automatic-closures.md
index cb8bd61721..ba398b3a1f 100644
--- a/tutorials/tour/automatic-closures.md
+++ b/tutorials/tour/automatic-closures.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Automatic Type-Dependent Closure Construction
---
diff --git a/tutorials/tour/case-classes.md b/tutorials/tour/case-classes.md
index 32356b15d1..4ef79e2fda 100644
--- a/tutorials/tour/case-classes.md
+++ b/tutorials/tour/case-classes.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Case Classes
---
diff --git a/tutorials/tour/classes.md b/tutorials/tour/classes.md
index d17d3d9d19..049def9d90 100644
--- a/tutorials/tour/classes.md
+++ b/tutorials/tour/classes.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Classes
---
diff --git a/tutorials/tour/compound-types.md b/tutorials/tour/compound-types.md
index bedff31aff..92194cc72f 100644
--- a/tutorials/tour/compound-types.md
+++ b/tutorials/tour/compound-types.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Compound Types
---
diff --git a/tutorials/tour/currying.md b/tutorials/tour/currying.md
index ae6ee66408..9ee4681948 100644
--- a/tutorials/tour/currying.md
+++ b/tutorials/tour/currying.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Currying
---
diff --git a/tutorials/tour/explicitly-typed-self-references.md b/tutorials/tour/explicitly-typed-self-references.md
index ecc82cc83d..5055fa32a1 100644
--- a/tutorials/tour/explicitly-typed-self-references.md
+++ b/tutorials/tour/explicitly-typed-self-references.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Explicitly Typed Self References
---
diff --git a/tutorials/tour/extractor-objects.md b/tutorials/tour/extractor-objects.md
index 28d7c4c3e5..f6515c0517 100644
--- a/tutorials/tour/extractor-objects.md
+++ b/tutorials/tour/extractor-objects.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Extractor Objects
---
diff --git a/tutorials/tour/generic-classes.md b/tutorials/tour/generic-classes.md
index a24672359a..ccfaac9e9a 100644
--- a/tutorials/tour/generic-classes.md
+++ b/tutorials/tour/generic-classes.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Generic Classes
---
diff --git a/tutorials/tour/higher-order-functions.md b/tutorials/tour/higher-order-functions.md
index 12c1323f01..503d90dd18 100644
--- a/tutorials/tour/higher-order-functions.md
+++ b/tutorials/tour/higher-order-functions.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Higher-order Functions
---
diff --git a/tutorials/tour/implicit-parameters.md b/tutorials/tour/implicit-parameters.md
index 0d3d874974..2276540beb 100644
--- a/tutorials/tour/implicit-parameters.md
+++ b/tutorials/tour/implicit-parameters.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Implicit Parameters
---
diff --git a/tutorials/tour/index.md b/tutorials/tour/index.md
index 65133702a3..7c31bc1ce4 100644
--- a/tutorials/tour/index.md
+++ b/tutorials/tour/index.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Tour of Scala
---
diff --git a/tutorials/tour/inner-classes.md b/tutorials/tour/inner-classes.md
index ac8a03a91a..fb0ff7e241 100644
--- a/tutorials/tour/inner-classes.md
+++ b/tutorials/tour/inner-classes.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Inner Classes
---
diff --git a/tutorials/tour/local-type-inference.md b/tutorials/tour/local-type-inference.md
index 1f9a4d7b96..0f3216c484 100644
--- a/tutorials/tour/local-type-inference.md
+++ b/tutorials/tour/local-type-inference.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Local Type Inference
---
Scala has a built-in type inference mechanism which allows the programmer to omit certain type annotations. It is, for instance, often not necessary in Scala to specify the type of a variable, since the compiler can deduce the type from the initialization expression of the variable. Also return types of methods can often be omitted since they corresponds to the type of the body, which gets inferred by the compiler.
diff --git a/tutorials/tour/lower-type-bounds.md b/tutorials/tour/lower-type-bounds.md
index c532b89635..06b595abb3 100644
--- a/tutorials/tour/lower-type-bounds.md
+++ b/tutorials/tour/lower-type-bounds.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Lower Type Bounds
---
diff --git a/tutorials/tour/mixin-class-composition.md b/tutorials/tour/mixin-class-composition.md
index 7fa86ecc6e..e50469a2f7 100644
--- a/tutorials/tour/mixin-class-composition.md
+++ b/tutorials/tour/mixin-class-composition.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Mixin Class Composition
---
diff --git a/tutorials/tour/nested-functions.md b/tutorials/tour/nested-functions.md
index ea9f705b78..3f8931e7d0 100644
--- a/tutorials/tour/nested-functions.md
+++ b/tutorials/tour/nested-functions.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Nested Functions
---
diff --git a/tutorials/tour/operators.md b/tutorials/tour/operators.md
index e0d0e6b28b..d186bdd29f 100644
--- a/tutorials/tour/operators.md
+++ b/tutorials/tour/operators.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Operators
---
diff --git a/tutorials/tour/pattern-matching.md b/tutorials/tour/pattern-matching.md
index 1e876a6d10..0fad53f043 100644
--- a/tutorials/tour/pattern-matching.md
+++ b/tutorials/tour/pattern-matching.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Pattern Matching
---
diff --git a/tutorials/tour/polymorphic-methods.md b/tutorials/tour/polymorphic-methods.md
index 690b7fdbe4..cad3bd4b01 100644
--- a/tutorials/tour/polymorphic-methods.md
+++ b/tutorials/tour/polymorphic-methods.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Polymorphic Methods
---
diff --git a/tutorials/tour/regular-expression-patterns.md b/tutorials/tour/regular-expression-patterns.md
index a8cbd0338b..9e1e409e01 100644
--- a/tutorials/tour/regular-expression-patterns.md
+++ b/tutorials/tour/regular-expression-patterns.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Regular Expression Patterns
---
diff --git a/tutorials/tour/sequence-comprehensions.md b/tutorials/tour/sequence-comprehensions.md
index d8d335bbb1..617850db3e 100644
--- a/tutorials/tour/sequence-comprehensions.md
+++ b/tutorials/tour/sequence-comprehensions.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Sequence Comprehensions
---
diff --git a/tutorials/tour/traits.md b/tutorials/tour/traits.md
index 61cb15814d..9a1e209b05 100644
--- a/tutorials/tour/traits.md
+++ b/tutorials/tour/traits.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Traits
---
diff --git a/tutorials/tour/unified_types.md b/tutorials/tour/unified_types.md
index 0487955ccd..90305230be 100644
--- a/tutorials/tour/unified_types.md
+++ b/tutorials/tour/unified_types.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Unified Types
---
diff --git a/tutorials/tour/upper-type-bounds.md b/tutorials/tour/upper-type-bounds.md
index 721e21b30c..5ee4784cb1 100644
--- a/tutorials/tour/upper-type-bounds.md
+++ b/tutorials/tour/upper-type-bounds.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Upper Type Bounds
---
diff --git a/tutorials/tour/variances.md b/tutorials/tour/variances.md
index 6655250558..11bdddbc76 100644
--- a/tutorials/tour/variances.md
+++ b/tutorials/tour/variances.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Variances
---
diff --git a/tutorials/tour/views.md b/tutorials/tour/views.md
index 9988642f0a..2473042254 100644
--- a/tutorials/tour/views.md
+++ b/tutorials/tour/views.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: Views
---
diff --git a/tour/xml-processing.md b/tutorials/tour/xml-processing.md
similarity index 98%
rename from tour/xml-processing.md
rename to tutorials/tour/xml-processing.md
index db69e5fadc..332054ee60 100644
--- a/tour/xml-processing.md
+++ b/tutorials/tour/xml-processing.md
@@ -1,5 +1,6 @@
---
-layout: overview
+layout: tutorial
+tutorial: scala-tour
title: XML Processing
---