get_element and get_list_elemnt now return shared_ptr