     }
     
     // Functions for managing what users are associated to this session.
-    func hasUser(_ user: User) -> Bool {
+    public func hasUser(_ user: User) -> Bool {
         if users.count == 0 { return false }
         if users.contains(where: { $0.tgID == user.tgID } ) == true { return true }
         return false
     }
     
-    func addUser(_ user: User) {
+    public func addUser(_ user: User) {
         users.append(user)
     }
 
     
     // Preparation conforming methods, for creating and deleting a database.
-    static func prepare(_ database: Database) throws {
+    public static func prepare(_ database: Database) throws {
         try database.create("users") { users in
             users.id()
         }
     }
     
-    static func revert(_ database: Database) throws {
+    public static func revert(_ database: Database) throws {
         try database.delete("users")
     }
     
     // Clears all states.
-    func clearStates() {
+    public func clearStates() {
         self.messageState = nil
         self.editedMessageState = nil
         self.channelState = nil

    }
    
    // Edits the text contents of a message in a delayed fashion, using a message object.
    func delayEdit(by: Int, message: Message, markup: MarkupType? = nil) {
        self.delay(by: by, stack: false, action: { session in
            self.bot.editMessageReplyMarkup(chatID: message.chat.tgID, messageID: message.tgID, replyMarkup: markup, replyMessageID: 0)
        })

// Holds the information for a bot session, when someone is immediately interacting with the bot
// Ignore this if you want?  What am i, a doctor?
public class TelegramBotSession {
    public var id: Node?           // Database ID
    public var bot: Pelican        // The bot associated with this session
    public var chat: Chat          // The chat ID associated with the session.
    public var primaryUser : User? // The primary user associated with this session, not applicable for channels or potentially other things.
    public var users: [User] = []  // Other users associated with this session.  The primary user is likely in this list.
    public var data: NSCopying?    // User-defined data chunk.
    
    // Session settings
    internal var maxSessionTime: Int = 0 // What the current maximum for the session time is.  Set 0 for no timer.
