Started rewritten Node and Element
Updated with refactoring