diff --git a/src/conf-mode/vyos-config-lldp.py b/src/conf-mode/vyos-config-lldp.py
index ba7e9cb13..1392fb14f 100644
--- a/src/conf-mode/vyos-config-lldp.py
+++ b/src/conf-mode/vyos-config-lldp.py
@@ -1,218 +1,213 @@
 #!/usr/bin/env python3
 #
 # Copyright (C) 2017 VyOS maintainers and contributors
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 or later as
 # published by the Free Software Foundation.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 #
 #
 
 import re
 import sys
 
 from vyos.config import Config
 from vyos.util import ConfigError
 
 
 
 def get_options(config):
     options ={}
-    config.set_level('service lldp')
-    options['listen_vlan'] = config.exists('listen-vlan')
-
-    options["addr"] = config.return_value('management-address')
-
-    snmp = config.exists('snmp enable')
+    options["listen_vlan"] = config.exists("service lldp listen-vlan")
+    options["addr"] = config.return_value("service lldp management-address")
+    snmp = config.exists("service lldp snmp enable")
     options["snmp"] = snmp
     if snmp:
-        config.set_level('')
-        options["sys_snmp"] = config.exists('service snmp')
-        config.set_level('service lldp')
+        options["sys_snmp"] = config.exists("service snmp")
 
-    config.set_level('service lldp legacy-protocols')
+    config.set_level("service lldp legacy-protocols")
     options["cdp"] = config.exists("cdp")
     options["edp"] = config.exists("edp")
     options["fdp"] = config.exists("fdp")
     options["sonmp"] = config.exists("sonmp")
+    config.set_level("")
     return options
 
 
 def get_interface_list(config):
-    config.set_level('service lldp')
-    intfs_names = config.list_nodes('interface')
-    if len(intfs_names) < 0:
+    intfs_names = config.list_nodes("service lldp interface")
+    if not intfs_names:
         return 0
     interface_list = []
     for name in intfs_names:
         config.set_level("service lldp interface {0}".format(name))
-        disable = config.exists('disable')
+        disable = config.exists("disable")
         intf = {
             "name": name,
             "disable": disable
         }
         interface_list.append(intf)
+    config.set_level("")
     return interface_list
 
 
 def get_location_intf(config, name):
     path = "service lldp interface {0}".format(name)
-    config.set_level(path)
-    if config.exists("location"):
+    if not config.exists("{0} location".format(path)):
         return 0
-    config.set_level("{} location".format(path))
     civic_based = {}
     elin = None
     coordinate_based = {}
 
-    if config.exists('civic-based'):
+    config.set_level("{} location".format(path))
+    if config.exists("civic-based"):
         config.set_level("{} location civic-based".format(path))
         cc = config.return_value("country-code")
         civic_based["country_code"] = cc
         civic_based["ca_type"] = []
-        ca_types_names = config.list_nodes('ca-type')
+        ca_types_names = config.list_nodes("ca-type")
         if ca_types_names:
             for ca_types_name in ca_types_names:
                 config.set_level("{0} location civic-based ca-type {1}".format(path, ca_types_name))
                 ca_val = config.return_value('ca-value')
                 ca_type = {
                     "name": ca_types_name,
                     "ca_val": ca_val
                 }
                 civic_based["ca_type"].append(ca_type)
 
     elif config.exists("elin"):
         elin = config.return_value("elin")
 
     elif config.exists("coordinate-based"):
         config.set_level("{} location coordinate-based".format(path))
         alt = config.return_value("altitude")
         lat = config.return_value("latitude")
         long = config.return_value("longitude")
         datum = config.return_value("datum")
         coordinate_based["altitude"] = alt
         coordinate_based["latitude"] = lat
         coordinate_based["longitude"] = long
         coordinate_based["datum"] = datum
 
     intf = {
         "name": name,
         "civic_based": civic_based,
         "elin": elin,
         "coordinate_based": coordinate_based
 
     }
+    config.set_level("")
     return intf
 
 
 def get_location(config):
-    config.set_level('service lldp')
-    intfs_names = config.list_nodes('interface')
-    if len(intfs_names) < 0:
+    intfs_names = config.list_nodes("service lldp interface")
+    if not intfs_names:
         return 0
     if config.exists("disable"):
         return 0
     intfs_location = []
     for name in intfs_names:
         intf = get_location_intf(config, name)
         intfs_location.append(intf)
     return intfs_location
 
 
 def get_config():
     conf = Config()
     options = get_options(conf)
     interface_list = get_interface_list(conf)
     location = get_location(conf)
     lldp = {"options": options, "interface_list": interface_list, "location": location}
     return lldp
 
 
 def verify(lldp):
 
     # check location
     for location in lldp["location"]:
 
         # check civic-based
-        if len(location["civic_based"]) > 0:
-            if len(location["coordinate_based"]) > 0 or location["elin"]:
+        if location["civic_based"]:
+            if location["coordinate_based"] or location["elin"]:
                 raise ConfigError("Can only configure 1 location type for interface {0}".format(location["name"]))
 
             # check country-code
             if not location["civic_based"]["country_code"]:
                 raise ConfigError("Invalid location for interface {0}: must configure the country code".format(location["name"]))
 
             if not re.match(r"^[a-zA-Z]{2}$", location["civic_based"]["country_code"]):
                 raise ConfigError("Invalid location for interface {0}: country-code must be 2 characters".format(location["name"]))
             # check ca-type
-            if len(location["civic_based"]["ca_type"]) < 0:
+            if not location["civic_based"]["ca_type"]:
                 raise ConfigError("Invalid location for interface {0}: must define at least 1 ca-type".format(location["name"]))
 
             for ca_type in location["civic_based"]["ca_type"]:
                 if not int(ca_type["name"]) in range(0, 129):
                     raise ConfigError("Invalid location for interface {0}: ca-type must between 0-128".format(location["name"]))
 
                 if not ca_type["ca_val"]:
                     raise ConfigError("Invalid location for interface {0}: must configure the ca-value for ca-type {1}".format(location["name"],ca_type["name"]))
 
         # check coordinate-based
-        elif len(location["coordinate_based"]) > 0:
+        elif location["coordinate_based"]:
             # check longitude and latitude
             if not location["coordinate_based"]["longitude"]:
                 raise ConfigError("Must define longitude for interface {0}".format(location["name"]))
 
             if not location["coordinate_based"]["latitude"]:
                 raise ConfigError("Must define latitude for interface {0}".format(location["name"]))
 
             if not re.match(r"^(\d+)(\.\d+)?[nNsS]$", location["coordinate_based"]["latitude"]):
                 raise ConfigError("Invalid location for interface {0}: latitude should be a number followed by S or N".format(location["name"]))
 
             if not re.match(r"^(\d+)(\.\d+)?[eEwW]$", location["coordinate_based"]["longitude"]):
                 raise ConfigError("Invalid location for interface {0}: longitude should be a number followed by E or W".format(location["name"]))
 
             # check altitude and datum if exist
             if location["coordinate_based"]["altitude"]:
                 if not re.match(r"^[-+0-9\.]+$", location["coordinate_based"]["altitude"]):
                     raise ConfigError("Invalid location for interface {0}: altitude should be a positive or negative number".format(location["name"]))
 
             if location["coordinate_based"]["datum"]:
                 if not re.match(r"^(WGS84|NAD83|MLLW)$", location["coordinate_based"]["datum"]):
                     raise ConfigError("Invalid location for interface {0}: datum should be WGS84, NAD83, or MLLW".format(location["name"]))
 
         # check elin
-        elif len(location["elin"]) > 0:
+        elif location["elin"]:
             if not re.match(r"^[0-9]{10,25}$", location["elin"]):
                 raise ConfigError("Invalid location for interface {0}: ELIN number must be between 10-25 numbers".format(location["name"]))
 
     # check options
     if lldp["options"]["snmp"]:
         if not lldp["options"]["sys_snmp"]:
             raise ConfigError("SNMP must be configured to enable LLDP SNMP")
 
 
 def generate(config):
     pass
 
 
 def apply(config):
     pass
 
 if __name__ == '__main__':
     try:
         c = get_config()
         verify(c)
         generate(c)
         apply(c)
     except ConfigError as e:
         print(e)
         sys.exit(1)