diff --git a/Frameworks/Bindings.xcframework/Info.plist b/Frameworks/Bindings.xcframework/Info.plist
index 5da456bbdabbf3d610daca4ce17734b523413a53..3c96df61083ca794226526858401b4539235d6ba 100644
--- a/Frameworks/Bindings.xcframework/Info.plist
+++ b/Frameworks/Bindings.xcframework/Info.plist
@@ -6,30 +6,30 @@
 	<array>
 		<dict>
 			<key>LibraryIdentifier</key>
-			<string>ios-arm64</string>
+			<string>ios-arm64_x86_64-simulator</string>
 			<key>LibraryPath</key>
 			<string>Bindings.framework</string>
 			<key>SupportedArchitectures</key>
 			<array>
 				<string>arm64</string>
+				<string>x86_64</string>
 			</array>
 			<key>SupportedPlatform</key>
 			<string>ios</string>
+			<key>SupportedPlatformVariant</key>
+			<string>simulator</string>
 		</dict>
 		<dict>
 			<key>LibraryIdentifier</key>
-			<string>ios-arm64_x86_64-simulator</string>
+			<string>ios-arm64</string>
 			<key>LibraryPath</key>
 			<string>Bindings.framework</string>
 			<key>SupportedArchitectures</key>
 			<array>
 				<string>arm64</string>
-				<string>x86_64</string>
 			</array>
 			<key>SupportedPlatform</key>
 			<string>ios</string>
-			<key>SupportedPlatformVariant</key>
-			<string>simulator</string>
 		</dict>
 	</array>
 	<key>CFBundlePackageType</key>
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings
index 6a502beec597ed1474bd50e61fa0537e2588f3eb..ccd958e618b71e7946c6e9afaba0bcefdabcb5bf 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings
index 6a502beec597ed1474bd50e61fa0537e2588f3eb..ccd958e618b71e7946c6e9afaba0bcefdabcb5bf 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings
index 6a502beec597ed1474bd50e61fa0537e2588f3eb..ccd958e618b71e7946c6e9afaba0bcefdabcb5bf 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings
index 8c6be89d2d97ed4d6b76cfd45d4012c4f7b649c1..79d4ca8d48c3c58f8b660c1644567f0d9a9eaca9 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings
index 8c6be89d2d97ed4d6b76cfd45d4012c4f7b649c1..79d4ca8d48c3c58f8b660c1644567f0d9a9eaca9 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/A/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings
index 8c6be89d2d97ed4d6b76cfd45d4012c4f7b649c1..79d4ca8d48c3c58f8b660c1644567f0d9a9eaca9 100644
Binary files a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings and b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Bindings differ
diff --git a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
index e3d9fefd0c6c4c233b287f3340a56d0d229d72b9..24d5cc9bca1be47de6ccf3a6e1cdfe505003ae1c 100644
--- a/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
+++ b/Frameworks/Bindings.xcframework/ios-arm64_x86_64-simulator/Bindings.framework/Versions/Current/Headers/Bindings.objc.h
@@ -17,9 +17,9 @@
 @class BindingsE2ESendReport;
 @class BindingsFact;
 @class BindingsIdentity;
-@class BindingsListenerID;
 @class BindingsMessage;
 @class BindingsRestlikeMessage;
+@class BindingsRoundsList;
 @protocol BindingsClientError;
 @class BindingsClientError;
 @protocol BindingsListener;
@@ -38,10 +38,11 @@
 @protocol BindingsListener <NSObject>
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -67,9 +68,10 @@
 // skipped field AuthenticatedConnection.Connection with unsupported type: gitlab.com/elixxir/client/bindings.Connection
 
 - (void)close;
+- (long)getId;
 - (NSData* _Nullable)getPartner;
 - (BOOL)isAuthenticated;
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 - (NSData* _Nullable)sendE2E:(long)mt payload:(NSData* _Nullable)payload error:(NSError* _Nullable* _Nullable)error;
 @end
 
@@ -113,8 +115,7 @@ messages can be sent
  */
 - (BOOL)isNetworkHealthy;
 /**
- * MakeIdentity generates a new cryptographic identity for receving
-messages
+ * MakeIdentity generates a new cryptographic identity for receiving messages
  */
 - (NSData* _Nullable)makeIdentity:(NSError* _Nullable* _Nullable)error;
 /**
@@ -167,6 +168,14 @@ Threads Started:
 		Responds to confirmations of successful rekey operations
  */
 - (BOOL)startNetworkFollower:(long)timeoutMS error:(NSError* _Nullable* _Nullable)error;
+/**
+ * StopNetworkFollower stops the network follower if it is running.
+It returns errors if the Follower is in the wrong status to stop or if it
+fails to stop it.
+if the network follower is running and this fails, the client object will
+most likely be in an unrecoverable state and need to be trashed.
+ */
+- (BOOL)stopNetworkFollower:(NSError* _Nullable* _Nullable)error;
 - (void)unregisterNetworkHealthCB:(int64_t)funcID;
 /**
  * WaitForMessageDelivery allows the caller to get notified if the rounds a
@@ -189,7 +198,7 @@ passed timeout. It will return true if the network is healthy
 @end
 
 /**
- * Connection is the bindings representation of a connect.Connection object that can be tracked
+ * Connection is the bindings representation of a connect.Connection object that can be tracked by id
  */
 @interface BindingsConnection : NSObject <goSeqRefInterface> {
 }
@@ -201,6 +210,10 @@ passed timeout. It will return true if the network is healthy
  * Close deletes this Connection's partner.Manager and releases resources
  */
 - (void)close;
+/**
+ * GetId returns the Connection.id
+ */
+- (long)getId;
 /**
  * GetPartner returns the partner.Manager for this Connection
  */
@@ -210,7 +223,7 @@ passed timeout. It will return true if the network is healthy
 and allows for reading data sent from the partner.Manager
 Returns marshalled ListenerID
  */
-- (NSData* _Nullable)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
+- (void)registerListener:(long)messageType newListener:(id<BindingsListener> _Nullable)newListener;
 /**
  * SendE2E is a wrapper for sending specifically to the Connection's partner.Manager
 Returns marshalled E2ESendReport
@@ -220,6 +233,10 @@ Returns marshalled E2ESendReport
 
 /**
  * E2ESendReport is the bindings representation of the return values of SendE2E
+Example E2ESendReport:
+{"RoundList":{"Rounds":[1,5,9]},
+ "MessageID":"51Yy47uZbP0o2Y9B/kkreDLTB6opUol3M3mYiY2dcdQ=",
+ "Timestamp":1653582683183384000}
  */
 @interface BindingsE2ESendReport : NSObject <goSeqRefInterface> {
 }
@@ -227,13 +244,17 @@ Returns marshalled E2ESendReport
 
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 - (nonnull instancetype)init;
+// skipped field E2ESendReport.RoundsList with unsupported type: gitlab.com/elixxir/client/bindings.RoundsList
+
 @property (nonatomic) NSData* _Nullable messageID;
 @property (nonatomic) int64_t timestamp;
 - (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
 @end
 
 /**
- * TODO: this seems completely pointless, as the FactList type is effectively the same thing
+ * Fact is an internal fact type for use in the bindings layer
+example marshalled Fact:
+{"Fact":"Zezima","Type":0}
  */
 @interface BindingsFact : NSObject <goSeqRefInterface> {
 }
@@ -269,19 +290,17 @@ Example marshalled Identity:
 @property (nonatomic) NSData* _Nullable dhKeyPrivate;
 @end
 
-/**
- * ListenerID represents the return type of RegisterListener
- */
-@interface BindingsListenerID : NSObject <goSeqRefInterface> {
-}
-@property(strong, readonly) _Nonnull id _ref;
-
-- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
-- (nonnull instancetype)init;
-@end
-
 /**
  * Message is the bindings representation of a receive.Message
+Example Message format:
+{"MessageType":1,
+ "ID":"EB/70R5HYEw5htZ4Hg9ondrn3+cAc/lH2G0mjQMja3w=",
+ "Payload":"7TzZKgNphT5UooNM7mDSwtVcIs8AIu4vMKm4ld6GSR8YX5GrHirixUBAejmsgdroRJyo06TkIVef7UM9FN8YfQ==",
+ "Sender":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "RecipientID":"amFrZXh4MzYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD",
+ "EphemeralID":17,"Timestamp":1653580439357351000,
+ "Encrypted":false,
+ "RoundId":19}
  */
 @interface BindingsMessage : NSObject <goSeqRefInterface> {
 }
@@ -325,6 +344,21 @@ Example marshalled RestlikeMessage:
 @property (nonatomic) NSString* _Nonnull error;
 @end
 
+/**
+ * Example marshalled roundList object:
+[1001,1003,1006]
+ */
+@interface BindingsRoundsList : NSObject <goSeqRefInterface> {
+}
+@property(strong, readonly) _Nonnull id _ref;
+
+- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
+- (nonnull instancetype)init;
+// skipped field RoundsList.Rounds with unsupported type: []int
+
+- (NSData* _Nullable)marshal:(NSError* _Nullable* _Nullable)error;
+@end
+
 /**
  * DownloadAndVerifySignedNdfWithUrl retrieves the NDF from a specified URL.
 The NDF is processed into a protobuf containing a signature which
@@ -345,11 +379,21 @@ which should be set to 32, but can be set higher in certain cases.
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGenerateSecret(long numBytes);
 
+/**
+ * GetDependencies returns the api DEPENDENCIES
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetDependencies(void);
+
 /**
  * GetFactsFromContact accepts a marshalled contact.Contact object, returning its marshalled list of Fact objects
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetFactsFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetGitVersion rturns the api GITVERSION
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetGitVersion(void);
+
 /**
  * GetIDFromContact accepts a marshalled contact.Contact object & returns a marshalled id.ID object
  */
@@ -360,6 +404,11 @@ FOUNDATION_EXPORT NSData* _Nullable BindingsGetIDFromContact(NSData* _Nullable m
  */
 FOUNDATION_EXPORT NSData* _Nullable BindingsGetPubkeyFromContact(NSData* _Nullable marshaled, NSError* _Nullable* _Nullable error);
 
+/**
+ * GetVersion returns the api SEMVER
+ */
+FOUNDATION_EXPORT NSString* _Nonnull BindingsGetVersion(void);
+
 /**
  * sets level of logging. All logs the set level and above will be displayed
 options are:
@@ -453,10 +502,11 @@ time.
 - (nonnull instancetype)initWithRef:(_Nonnull id)ref;
 /**
  * Hear is called to receive a message in the UI
+Accepts a marshalled Message object
  */
 - (void)hear:(NSData* _Nullable)item;
 /**
- * Returns a name, used for debugging
+ * Name returns a name, used for debugging
  */
 - (NSString* _Nonnull)name;
 @end
@@ -472,6 +522,9 @@ time.
 /**
  * MessageDeliveryCallback gets called on the determination if all events
 related to a message send were successful.
+If delivered == true, timedOut == false && roundResults != nil
+If delivered == false, roundResults == nil
+If timedOut == true, delivered == false && roundResults == nil
  */
 @interface BindingsMessageDeliveryCallback : NSObject <goSeqRefInterface, BindingsMessageDeliveryCallback> {
 }