rewriting the docs for components, plus some cleanup.