Final version. Preview, code  snippets added.