diff --git a/protocols/bgp/server/fsm2.go b/protocols/bgp/server/fsm2.go
index 1bd789b3df2d68a08380a87382c91fa480b6a42d..6e1682c71b7aaf47ff2858a30b199fc07cb43297 100644
--- a/protocols/bgp/server/fsm2.go
+++ b/protocols/bgp/server/fsm2.go
@@ -26,8 +26,8 @@ type state interface {
 	run() (state, string)
 }
 
-// FSM2 implements the BGP finite state machine (RFC4271)
-type FSM2 struct {
+// FSM implements the BGP finite state machine (RFC4271)
+type FSM struct {
 	peer        *Peer
 	eventCh     chan int
 	con         net.Conn
@@ -72,7 +72,7 @@ type FSM2 struct {
 }
 
 // NewPassiveFSM2 initiates a new passive FSM
-func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM2 {
+func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM {
 	fsm := newFSM2(peer)
 	fsm.con = con
 	fsm.state = newIdleState(fsm)
@@ -80,15 +80,15 @@ func NewPassiveFSM2(peer *Peer, con *net.TCPConn) *FSM2 {
 }
 
 // NewActiveFSM2 initiates a new passive FSM
-func NewActiveFSM2(peer *Peer) *FSM2 {
+func NewActiveFSM2(peer *Peer) *FSM {
 	fsm := newFSM2(peer)
 	fsm.active = true
 	fsm.state = newIdleState(fsm)
 	return fsm
 }
 
-func newFSM2(peer *Peer) *FSM2 {
-	return &FSM2{
+func newFSM2(peer *Peer) *FSM {
+	return &FSM{
 		connectRetryTime: time.Minute,
 		peer:             peer,
 		eventCh:          make(chan int),
@@ -102,17 +102,17 @@ func newFSM2(peer *Peer) *FSM2 {
 	}
 }
 
-func (fsm *FSM2) start() {
+func (fsm *FSM) start() {
 	go fsm.run()
 	go fsm.tcpConnector()
 	return
 }
 
-func (fsm *FSM2) activate() {
+func (fsm *FSM) activate() {
 	fsm.eventCh <- AutomaticStart
 }
 
-func (fsm *FSM2) run() {
+func (fsm *FSM) run() {
 	next, reason := fsm.state.run()
 	for {
 		newState := stateName(next)
@@ -160,11 +160,11 @@ func stateName(s state) string {
 	}
 }
 
-func (fsm *FSM2) cease() {
+func (fsm *FSM) cease() {
 	fsm.eventCh <- Cease
 }
 
-func (fsm *FSM2) tcpConnector() error {
+func (fsm *FSM) tcpConnector() error {
 	for {
 		select {
 		case <-fsm.initiateCon:
@@ -189,11 +189,11 @@ func (fsm *FSM2) tcpConnector() error {
 	}
 }
 
-func (fsm *FSM2) tcpConnect() {
+func (fsm *FSM) tcpConnect() {
 	fsm.initiateCon <- struct{}{}
 }
 
-func (fsm *FSM2) msgReceiver() error {
+func (fsm *FSM) msgReceiver() error {
 	for {
 		msg, err := recvMsg(fsm.con)
 		if err != nil {
@@ -204,21 +204,21 @@ func (fsm *FSM2) msgReceiver() error {
 	}
 }
 
-func (fsm *FSM2) startConnectRetryTimer() {
+func (fsm *FSM) startConnectRetryTimer() {
 	fsm.connectRetryTimer = time.NewTimer(fsm.connectRetryTime)
 }
 
-func (fsm *FSM2) resetConnectRetryTimer() {
+func (fsm *FSM) resetConnectRetryTimer() {
 	if !fsm.connectRetryTimer.Reset(fsm.connectRetryTime) {
 		<-fsm.connectRetryTimer.C
 	}
 }
 
-func (fsm *FSM2) resetConnectRetryCounter() {
+func (fsm *FSM) resetConnectRetryCounter() {
 	fsm.connectRetryCounter = 0
 }
 
-func (fsm *FSM2) sendOpen() error {
+func (fsm *FSM) sendOpen() error {
 	msg := packet.SerializeOpenMsg(&packet.BGPOpen{
 		Version:       BGPVersion,
 		AS:            uint16(fsm.peer.localASN),
@@ -235,7 +235,7 @@ func (fsm *FSM2) sendOpen() error {
 	return nil
 }
 
-func (fsm *FSM2) sendNotification(errorCode uint8, errorSubCode uint8) error {
+func (fsm *FSM) sendNotification(errorCode uint8, errorSubCode uint8) error {
 	msg := packet.SerializeNotificationMsg(&packet.BGPNotification{})
 
 	_, err := fsm.con.Write(msg)
@@ -246,7 +246,7 @@ func (fsm *FSM2) sendNotification(errorCode uint8, errorSubCode uint8) error {
 	return nil
 }
 
-func (fsm *FSM2) sendKeepalive() error {
+func (fsm *FSM) sendKeepalive() error {
 	msg := packet.SerializeKeepaliveMsg()
 
 	_, err := fsm.con.Write(msg)
diff --git a/protocols/bgp/server/fsm_active.go b/protocols/bgp/server/fsm_active.go
index f8fa6b39c933215e0482f7838b89507073d8c515..a84f910d945b473f655465239ae1b08c61d94ebc 100644
--- a/protocols/bgp/server/fsm_active.go
+++ b/protocols/bgp/server/fsm_active.go
@@ -7,10 +7,10 @@ import (
 )
 
 type activeState struct {
-	fsm *FSM2
+	fsm *FSM
 }
 
-func newActiveState(fsm *FSM2) *activeState {
+func newActiveState(fsm *FSM) *activeState {
 	return &activeState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/fsm_connect.go b/protocols/bgp/server/fsm_connect.go
index cc9ce060b12289059099948114f3929d0e2a6c38..70142ea9702d2673f6c9a2450fc1ec2fb7f50c76 100644
--- a/protocols/bgp/server/fsm_connect.go
+++ b/protocols/bgp/server/fsm_connect.go
@@ -7,10 +7,10 @@ import (
 )
 
 type connectState struct {
-	fsm *FSM2
+	fsm *FSM
 }
 
-func newConnectState(fsm *FSM2) *connectState {
+func newConnectState(fsm *FSM) *connectState {
 	return &connectState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/fsm_established.go b/protocols/bgp/server/fsm_established.go
index 02f5ac244ddbc5034f7d447705c4d7b74378bfdd..87ef4ba1f935e8ae8068c2a63ce0789eb7db0bf7 100644
--- a/protocols/bgp/server/fsm_established.go
+++ b/protocols/bgp/server/fsm_established.go
@@ -14,10 +14,10 @@ import (
 )
 
 type establishedState struct {
-	fsm *FSM2
+	fsm *FSM
 }
 
-func newEstablishedState(fsm *FSM2) *establishedState {
+func newEstablishedState(fsm *FSM) *establishedState {
 	return &establishedState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/fsm_idle.go b/protocols/bgp/server/fsm_idle.go
index ce4cc105a7a079f15817485b0486686b1ae29eb1..4480bb53579d46147a0a84e69cc17126ea6bf1ea 100644
--- a/protocols/bgp/server/fsm_idle.go
+++ b/protocols/bgp/server/fsm_idle.go
@@ -5,11 +5,11 @@ import (
 )
 
 type idleState struct {
-	fsm            *FSM2
+	fsm            *FSM
 	newStateReason string
 }
 
-func newIdleState(fsm *FSM2) *idleState {
+func newIdleState(fsm *FSM) *idleState {
 	return &idleState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/fsm_manager.go b/protocols/bgp/server/fsm_manager.go
index 5511704c7950bf89a7eeb7ba5ff7d82843b8348b..2ed78f3958805e7a9b6eac6075adafb7d196aa26 100644
--- a/protocols/bgp/server/fsm_manager.go
+++ b/protocols/bgp/server/fsm_manager.go
@@ -3,12 +3,12 @@ package server
 import "net"
 
 type fsmManager struct {
-	fsms map[string][]*FSM2
+	fsms map[string][]*FSM
 }
 
 func newFSMManager() *fsmManager {
 	return &fsmManager{
-		fsms: make(map[string][]*FSM2, 0),
+		fsms: make(map[string][]*FSM, 0),
 	}
 }
 
@@ -16,10 +16,10 @@ func (m *fsmManager) resolveCollision(addr net.IP) {
 
 }
 
-func (m *fsmManager) newFSMPassive() *FSM2 {
-	return &FSM2{}
+func (m *fsmManager) newFSMPassive() *FSM {
+	return &FSM{}
 }
 
-func (m *fsmManager) newFSMActive() *FSM2 {
-	return &FSM2{}
+func (m *fsmManager) newFSMActive() *FSM {
+	return &FSM{}
 }
diff --git a/protocols/bgp/server/fsm_open_confirm.go b/protocols/bgp/server/fsm_open_confirm.go
index 1959c21e57e47da3a3c491683383110e23cc4f70..d2d25e4f533ec30d9a5d15aec25504d055c45f54 100644
--- a/protocols/bgp/server/fsm_open_confirm.go
+++ b/protocols/bgp/server/fsm_open_confirm.go
@@ -8,10 +8,10 @@ import (
 )
 
 type openConfirmState struct {
-	fsm *FSM2
+	fsm *FSM
 }
 
-func newOpenConfirmState(fsm *FSM2) *openConfirmState {
+func newOpenConfirmState(fsm *FSM) *openConfirmState {
 	return &openConfirmState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/fsm_open_sent.go b/protocols/bgp/server/fsm_open_sent.go
index cf628699e22bd85266bc4f9a77eb07a098e50c2c..63680636d8e0c65afe1dad9ec9d1280c34e9c37d 100644
--- a/protocols/bgp/server/fsm_open_sent.go
+++ b/protocols/bgp/server/fsm_open_sent.go
@@ -10,10 +10,10 @@ import (
 )
 
 type openSentState struct {
-	fsm *FSM2
+	fsm *FSM
 }
 
-func newOpenSentState(fsm *FSM2) *openSentState {
+func newOpenSentState(fsm *FSM) *openSentState {
 	return &openSentState{
 		fsm: fsm,
 	}
diff --git a/protocols/bgp/server/peer.go b/protocols/bgp/server/peer.go
index 23b4f16152f0b9ca2b81e8156160154f69111e8b..26f183ce7b7572f71a6edc6982122eccf88fccf2 100644
--- a/protocols/bgp/server/peer.go
+++ b/protocols/bgp/server/peer.go
@@ -16,7 +16,7 @@ type Peer struct {
 	addr              net.IP
 	peerASN           uint32
 	localASN          uint32
-	fsms              []*FSM2
+	fsms              []*FSM
 	fsmsMu            sync.Mutex
 	rib               routingtable.RouteTableClient
 	routerID          uint32
@@ -30,7 +30,7 @@ type Peer struct {
 	exportFilter      *filter.Filter
 }
 
-func (p *Peer) collisionHandling(callingFSM *FSM2) bool {
+func (p *Peer) collisionHandling(callingFSM *FSM) bool {
 	p.fsmsMu.Lock()
 	defer p.fsmsMu.Unlock()
 
@@ -88,7 +88,7 @@ func NewPeer(c config.Peer, rib routingtable.RouteTableClient, server *BGPServer
 		addr:              c.PeerAddress,
 		peerASN:           c.PeerAS,
 		localASN:          c.LocalAS,
-		fsms:              make([]*FSM2, 0),
+		fsms:              make([]*FSM, 0),
 		rib:               rib,
 		addPathSend:       c.AddPathSend,
 		addPathRecv:       c.AddPathRecv,
diff --git a/protocols/bgp/server/update_helper.go b/protocols/bgp/server/update_helper.go
index b749f1433ec7cea2a6d1b026161d1b6758f98a3b..fdb73fee2aead719b76a7bef7ba9209e46891857 100644
--- a/protocols/bgp/server/update_helper.go
+++ b/protocols/bgp/server/update_helper.go
@@ -10,7 +10,7 @@ import (
 	log "github.com/sirupsen/logrus"
 )
 
-func pathAttribues(p *route.Path, fsm *FSM2) (*packet.PathAttribute, error) {
+func pathAttribues(p *route.Path, fsm *FSM) (*packet.PathAttribute, error) {
 	asPathPA, err := packet.ParseASPathStr(strings.TrimRight(fmt.Sprintf("%d %s", fsm.peer.localASN, p.BGPPath.ASPath), " "))
 	if err != nil {
 		return nil, fmt.Errorf("Unable to parse AS path: %v", err)
diff --git a/protocols/bgp/server/update_sender.go b/protocols/bgp/server/update_sender.go
index e087b7f256ccf05945b29ac715bffc167e723686..76c4eadc827ab809af23d09df9e809f1ed4b4a47 100644
--- a/protocols/bgp/server/update_sender.go
+++ b/protocols/bgp/server/update_sender.go
@@ -15,11 +15,11 @@ import (
 // UpdateSender converts table changes into BGP update messages
 type UpdateSender struct {
 	routingtable.ClientManager
-	fsm  *FSM2
+	fsm  *FSM
 	iBGP bool
 }
 
-func newUpdateSender(fsm *FSM2) *UpdateSender {
+func newUpdateSender(fsm *FSM) *UpdateSender {
 	return &UpdateSender{
 		fsm:  fsm,
 		iBGP: fsm.peer.localASN == fsm.peer.peerASN,
diff --git a/protocols/bgp/server/update_sender_add_path.go b/protocols/bgp/server/update_sender_add_path.go
index 7d22bcaa0eea6dce7747bad27237d7f3dd0401eb..0dac801374e167c3bd5e8a38304ba12f8af74f3c 100644
--- a/protocols/bgp/server/update_sender_add_path.go
+++ b/protocols/bgp/server/update_sender_add_path.go
@@ -12,11 +12,11 @@ import (
 // UpdateSenderAddPath converts table changes into BGP update messages with add path
 type UpdateSenderAddPath struct {
 	routingtable.ClientManager
-	fsm  *FSM2
+	fsm  *FSM
 	iBGP bool
 }
 
-func newUpdateSenderAddPath(fsm *FSM2) *UpdateSenderAddPath {
+func newUpdateSenderAddPath(fsm *FSM) *UpdateSenderAddPath {
 	return &UpdateSenderAddPath{
 		fsm:  fsm,
 		iBGP: fsm.peer.localASN == fsm.peer.peerASN,