Add more documentation, make web mode idempotent.