big refactoring. keep version specific code in seperate jdoc implementations.