Refactored DOMAdapter into a facade for document/window functions (more absraction) and now using ViewAdapter to return actual view elements.
Adding caching to ViewAdapter as this class will be accessed a lot