restrucuring/cleaning the core doc, splitting out the optional stuff into extensions