DOM implementations and fakes