ElementObject introduction and refactored self recognition