diff --git a/src/lsa/lsa.cpp b/src/lsa/lsa.cpp
index 73ddbe7..dd8267e 100644
--- a/src/lsa/lsa.cpp
+++ b/src/lsa/lsa.cpp
@@ -27,7 +27,7 @@
 
 namespace nlsr {
 
-Lsa::Lsa(const ndn::Name& originRouter, uint32_t seqNo,
+Lsa::Lsa(const ndn::Name& originRouter, uint64_t seqNo,
          ndn::time::system_clock::TimePoint expirationTimePoint)
   : m_originRouter(originRouter)
   , m_seqNo(seqNo)
@@ -35,12 +35,6 @@
 {
 }
 
-ndn::Name
-Lsa::getKey() const
-{
-  return ndn::Name(m_originRouter).append(boost::lexical_cast<std::string>((getType())));
-}
-
 template<ndn::encoding::Tag TAG>
 size_t
 Lsa::wireEncode(ndn::EncodingImpl<TAG>& encoder) const
@@ -70,20 +64,12 @@
   m_originRouter.clear();
   m_seqNo = 0;
 
-  m_baseWire = wire;
+  ndn::Block baseWire = wire;
+  baseWire.parse();
 
-  if (m_baseWire.type() != ndn::tlv::nlsr::Lsa) {
-    std::stringstream error;
-    error << "Expected Lsa Block, but Block is of a different type: #"
-          << m_baseWire.type();
-    BOOST_THROW_EXCEPTION(Error(error.str()));
-  }
+  auto val = baseWire.elements_begin();
 
-  m_baseWire.parse();
-
-  ndn::Block::element_const_iterator val = m_baseWire.elements_begin();
-
-  if (val != m_baseWire.elements_end() && val->type() == ndn::tlv::Name) {
+  if (val != baseWire.elements_end() && val->type() == ndn::tlv::Name) {
     m_originRouter.wireDecode(*val);
   }
   else {
@@ -92,7 +78,7 @@
 
   ++val;
 
-  if (val != m_baseWire.elements_end() && val->type() == ndn::tlv::nlsr::SequenceNumber) {
+  if (val != baseWire.elements_end() && val->type() == ndn::tlv::nlsr::SequenceNumber) {
     m_seqNo = ndn::readNonNegativeInteger(*val);
     ++val;
   }
@@ -100,7 +86,7 @@
     BOOST_THROW_EXCEPTION(Error("Missing required SequenceNumber field"));
   }
 
-  if (val != m_baseWire.elements_end() && val->type() == ndn::tlv::nlsr::ExpirationTime) {
+  if (val != baseWire.elements_end() && val->type() == ndn::tlv::nlsr::ExpirationTime) {
     m_expirationTimePoint = ndn::time::fromString(readString(*val));
   }
   else {
