Rewritten docs from scratch.