diff --git a/doc/source/reference/kwant.lattice.rst b/doc/source/reference/kwant.lattice.rst
index ccebf19a72dfe9aa240987218fecb2c74f51c6c0..6da3fc23b49581e86af672a51a13d359b4c3dea0 100644
--- a/doc/source/reference/kwant.lattice.rst
+++ b/doc/source/reference/kwant.lattice.rst
@@ -8,10 +8,10 @@ General
 .. autosummary::
    :toctree: generated/
 
-   general
    TranslationalSymmetry
-   MonatomicLattice
-   PolyatomicLattice
+   general
+   Monatomic
+   Polyatomic
 
 Library of lattices
 -------------------
diff --git a/doc/source/tutorial/tutorial4.rst b/doc/source/tutorial/tutorial4.rst
index 62096195ce405614a31dd85dc25eb77d005add28..7c70174f7844ae82c722c6040d5439e89ed2912b 100644
--- a/doc/source/tutorial/tutorial4.rst
+++ b/doc/source/tutorial/tutorial4.rst
@@ -82,7 +82,7 @@ The leads are defined almost as before:
     :start-after: #HIDDEN_BEGIN_aakh
     :end-before: #HIDDEN_END_aakh
 
-Note the method `~kwant.lattice.PolyatomicLattice.vec` used in calculating the
+Note the method `~kwant.lattice.Polyatomic.vec` used in calculating the
 parameter for `~kwant.lattice.TranslationalSymmetry`.  The latter expects a
 real-space symmetry vector, but for many lattices symmetry vectors are more
 easily expressed in the natural coordinate system of the lattice.  The ``vec``
diff --git a/doc/source/whatsnew/0.3.rst b/doc/source/whatsnew/0.3.rst
index 1b9872a4e43f2778b306156f1cf0b03fe6a018ca..577b705f86f4aed4211350352b2ea03bbda3f179 100644
--- a/doc/source/whatsnew/0.3.rst
+++ b/doc/source/whatsnew/0.3.rst
@@ -5,7 +5,9 @@ This article explains the user-visible changes in kwant 0.3.
 
 Some renames
 ------------
-``wave_func`` has been renamed to `~kwant.solvers.default.wave_function`.
+* ``wave_func`` has been renamed to `~kwant.solvers.default.wave_function`,
+* ``MonatomicLattice`` has been renamed to `~kwant.lattice.Monatomic`,
+* ``PolyatomicLattice`` has been renamed to `~kwant.lattice.Polyatomic`.
 
 Immutable site groups
 ---------------------
diff --git a/kwant/builder.py b/kwant/builder.py
index 13387cb81a81a85dc876fd0ac768f08432c8c006..5b312d5503616b26332653bfd948a8725d910817 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -160,7 +160,7 @@ class SimpleSiteGroup(SiteGroup):
     sites with non-numeric objects like strings should this every be useful.
 
     Due to its low storage efficiency for numbers it is not recommended to use
-    `SimpleSiteGroup` when `kwant.lattice.MonatomicLattice` would also work.
+    `SimpleSiteGroup` when `kwant.lattice.Monatomic` would also work.
     """
 
     def __init__(self, name=None):
diff --git a/kwant/lattice.py b/kwant/lattice.py
index 503565a18da1282385037bd385a5f9fb0e65c1b1..518fb018c6ed7ad493e4b7d0090bdd6fc96512ac 100644
--- a/kwant/lattice.py
+++ b/kwant/lattice.py
@@ -8,8 +8,7 @@
 
 from __future__ import division
 
-__all__ = ['general', 'TranslationalSymmetry',
-           'PolyatomicLattice', 'MonatomicLattice']
+__all__ = ['TranslationalSymmetry', 'general', 'Polyatomic', 'Monatomic']
 
 from math import sqrt
 import numpy as np
@@ -34,7 +33,7 @@ def general(prim_vecs, basis=None, name=''):
 
     Returns
     -------
-    lattice : either `MonatomicLattice` or `PolyatomicLattice`
+    lattice : either `Monatomic` or `Polyatomic`
         Resulting lattice.
 
     Notes
@@ -43,12 +42,12 @@ def general(prim_vecs, basis=None, name=''):
     lattices.
     """
     if basis is None:
-        return MonatomicLattice(prim_vecs, name=name)
+        return Monatomic(prim_vecs, name=name)
     else:
-        return PolyatomicLattice(prim_vecs, basis, name=name)
+        return Polyatomic(prim_vecs, basis, name=name)
 
 
-class PolyatomicLattice(object):
+class Polyatomic(object):
     """
     Bravais lattice with a basis containing more than one site.
 
@@ -67,7 +66,7 @@ class PolyatomicLattice(object):
 
     Instance Variables
     ------------------
-    sublattices : list of `MonatomicLattice`
+    sublattices : list of `Monatomic`
         Sublattices belonging to this lattice.
 
     Raises
@@ -93,7 +92,7 @@ class PolyatomicLattice(object):
         if basis.shape[1] != dim:
             raise ValueError('Basis dimensionality does not match '
                              'the space dimensionality.')
-        self.sublattices = [MonatomicLattice(prim_vecs, offset, sname)
+        self.sublattices = [Monatomic(prim_vecs, offset, sname)
                             for offset, sname in zip(basis, name)]
         # Sequence of primitive vectors of the lattice.
         self.prim_vecs = prim_vecs
@@ -174,7 +173,7 @@ class PolyatomicLattice(object):
         return ta.dot(int_vec, self.prim_vecs)
 
 
-class MonatomicLattice(builder.SiteGroup, PolyatomicLattice):
+class Monatomic(builder.SiteGroup, Polyatomic):
     """
     A site group of sites belonging to a Bravais lattice.
 
@@ -226,12 +225,12 @@ class MonatomicLattice(builder.SiteGroup, PolyatomicLattice):
             return full[1 : -1]
 
         if self.name != '':
-            msg = "MonoatomicLattice {0}, vectors {1}, origin {2}"
+            msg = "Monatomic lattice {0}, vectors {1}, origin {2}"
             self.cached_str = msg.format(self.name,
                                          short_array_str(self.prim_vecs),
                                          short_array_str(self.offset))
         else:
-            msg = "unnamed MonoatomicLattice, vectors {0}, origin [{1}]"
+            msg = "unnamed Monatomic lattice, vectors {0}, origin [{1}]"
             self.cached_str = msg.format(short_array_str(self.prim_vecs),
                                          short_array_str(self.offset))
 
@@ -426,14 +425,14 @@ class TranslationalSymmetry(builder.Symmetry):
 
 def chain(a=1, name=''):
     """Create a one-dimensional lattice."""
-    lat = MonatomicLattice(((a,),), name=name)
+    lat = Monatomic(((a,),), name=name)
     lat.nearest = [((1,), lat, lat)]
     return lat
 
 
 def square(a=1, name=''):
     """Create a square lattice."""
-    lat = MonatomicLattice(((a, 0), (0, a)), name=name)
+    lat = Monatomic(((a, 0), (0, a)), name=name)
     lat.nearest = [((1, 0), lat, lat),
                     ((0, 1), lat, lat)]
     return lat
@@ -441,7 +440,7 @@ def square(a=1, name=''):
 
 def honeycomb(a=1, name=''):
     """Create a honeycomb lattice."""
-    lat = PolyatomicLattice(((a, 0), (0.5 * a, 0.5 * a * sqrt(3))),
+    lat = Polyatomic(((a, 0), (0.5 * a, 0.5 * a * sqrt(3))),
                             ((0, 0), (0, a / sqrt(3))), name=name)
     lat.a, lat.b = lat.sublattices
     lat.nearest = [((0, 0), lat.a, lat.b),