Issue #3. Introduce precondition

See #3 for more information.