     ///
     /// - Parameters:
     ///   - tableName: The custom tableName or the default one if nil is passed
-    ///   - bundle: Optional Parameter. The bundle which contains the strings table or uses the main bundle if none is passed
+    ///   - bundle: Optional Parameter. The bundle which contains the strings table or uses default bundle from the LocalizationManager
     /// - Throws: A `LocalizableError` if the string table does not exist
-    public func changeLanguage(to tableName: String?, from bundle: Bundle = Bundle.main) throws {
+    public func changeLanguage(to tableName: String?, from bundle: Bundle = LocalizationManager.sharedInstance().bundle) throws {
         guard let filePath = bundle.path(forResource: tableName, ofType: "strings"),
             FileManager.default.fileExists(atPath: filePath) == true else {
 

    /// The string table to search for localized values
    private var tableName: String?

    /// private init for the singleton
    /// adding locale changed notification
    private init() {

    internal func add(localizable: Localizable) {

        /// return if the object already exists
        guard !weakHash.contains(localizable) else {
            return
        }

