diff --git a/modules/alloresto/browser.py b/modules/alloresto/browser.py
index c7d772f9..0c0872f9 100644
--- a/modules/alloresto/browser.py
+++ b/modules/alloresto/browser.py
@@ -19,7 +19,7 @@
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, AccountsPage
diff --git a/modules/banqueaccord/browser.py b/modules/banqueaccord/browser.py
index 757f4cd9..2f1ab704 100644
--- a/modules/banqueaccord/browser.py
+++ b/modules/banqueaccord/browser.py
@@ -19,7 +19,7 @@
from weboob.browser2 import LoginBrowser, need_login, URL
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, IndexPage, AccountsPage, OperationsPage
diff --git a/modules/banqueaccord/pages.py b/modules/banqueaccord/pages.py
index c6501c33..8f7adee4 100644
--- a/modules/banqueaccord/pages.py
+++ b/modules/banqueaccord/pages.py
@@ -30,7 +30,7 @@ from weboob.browser2.filters.standard import CleanText, Regexp, CleanDecimal, En
from weboob.browser2.filters.html import Attr
from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardError
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
class Transaction(FrenchTransaction):
diff --git a/modules/carrefourbanque/browser.py b/modules/carrefourbanque/browser.py
index 7a1c62f7..9e6d57f2 100644
--- a/modules/carrefourbanque/browser.py
+++ b/modules/carrefourbanque/browser.py
@@ -19,7 +19,7 @@
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, HomePage, TransactionsPage
diff --git a/modules/cmb/module.py b/modules/cmb/module.py
index aa728de6..075e9ada 100644
--- a/modules/cmb/module.py
+++ b/modules/cmb/module.py
@@ -22,7 +22,7 @@ from weboob.capabilities.bank import Account, Transaction
from weboob.tools.backend import Module, BackendConfig
from weboob.tools.value import ValueBackendPassword
from weboob.capabilities.base import NotAvailable
-from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError
+from weboob.core.exceptions import BrowserIncorrectPassword, ParseError
from weboob.browser2 import Browser
from re import match, compile, sub
diff --git a/modules/creditmutuel/browser.py b/modules/creditmutuel/browser.py
index d1f9a4ff..310fee4d 100644
--- a/modules/creditmutuel/browser.py
+++ b/modules/creditmutuel/browser.py
@@ -27,7 +27,7 @@ from datetime import datetime, timedelta
from weboob.tools.compat import basestring
from weboob.browser2 import LoginBrowser, URL, Wget, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.capabilities.bank import Transfer, TransferError
from .pages import LoginPage, LoginErrorPage, AccountsPage, UserSpacePage, \
diff --git a/modules/creditmutuel/pages.py b/modules/creditmutuel/pages.py
index 8b7173d7..7ffc20f0 100644
--- a/modules/creditmutuel/pages.py
+++ b/modules/creditmutuel/pages.py
@@ -31,7 +31,7 @@ from weboob.browser2.page import HTMLPage, method, FormNotFound, LoggedPage
from weboob.browser2.elements import ListElement, ItemElement, SkipItem
from weboob.browser2.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, TableCell
from weboob.browser2.filters.html import Link
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.capabilities import NotAvailable
from weboob.capabilities.bank import Account
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
diff --git a/modules/feedly/google.py b/modules/feedly/google.py
index d8638d3b..15355465 100644
--- a/modules/feedly/google.py
+++ b/modules/feedly/google.py
@@ -20,7 +20,7 @@
from urlparse import urlparse, parse_qs
from weboob.browser2 import LoginBrowser, URL, HTMLPage
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
class GoogleLoginPage(HTMLPage):
diff --git a/modules/freemobile/browser.py b/modules/freemobile/browser.py
index 003c0aed..5de18f3c 100644
--- a/modules/freemobile/browser.py
+++ b/modules/freemobile/browser.py
@@ -18,7 +18,7 @@
# along with weboob. If not, see .
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, DetailsPage
__all__ = ['Freemobile']
diff --git a/modules/groupamaes/browser.py b/modules/groupamaes/browser.py
index b8d59105..47992e87 100644
--- a/modules/groupamaes/browser.py
+++ b/modules/groupamaes/browser.py
@@ -19,7 +19,7 @@
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, LoginErrorPage, AvoirPage, OperationsTraiteesPage, OperationsFuturesPage
diff --git a/modules/hsbc/browser.py b/modules/hsbc/browser.py
index 8aaad18d..db3e803d 100644
--- a/modules/hsbc/browser.py
+++ b/modules/hsbc/browser.py
@@ -22,7 +22,7 @@ import ssl
from datetime import timedelta
from weboob.tools.date import LinearDateGuesser
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.browser2 import LoginBrowser, URL, need_login
from .pages import AccountsPage, CBOperationPage, CPTOperationPage, LoginPage
diff --git a/modules/hsbc/pages.py b/modules/hsbc/pages.py
index 6ca88363..59197559 100644
--- a/modules/hsbc/pages.py
+++ b/modules/hsbc/pages.py
@@ -24,7 +24,7 @@ from weboob.capabilities import NotAvailable
from weboob.capabilities.bank import Account
from weboob.tools.capabilities.bank.transactions import FrenchTransaction
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.browser2.elements import ListElement, ItemElement, SkipItem
from weboob.browser2.page import HTMLPage, method, LoggedPage, pagination
from weboob.browser2.filters.standard import Filter, Env, CleanText, CleanDecimal, Field, DateGuesser, TableCell
diff --git a/modules/ing/browser.py b/modules/ing/browser.py
index e034f6bc..29183c37 100644
--- a/modules/ing/browser.py
+++ b/modules/ing/browser.py
@@ -19,7 +19,7 @@
import hashlib
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword, ParseError
+from weboob.core.exceptions import BrowserIncorrectPassword, ParseError
from weboob.capabilities.bank import Account, TransferError
from .pages import AccountsList, LoginPage, TitrePage, TitreHistory,\
diff --git a/modules/ing/pages/login.py b/modules/ing/pages/login.py
index 15e2132c..efb89a18 100644
--- a/modules/ing/pages/login.py
+++ b/modules/ing/pages/login.py
@@ -19,7 +19,7 @@
from StringIO import StringIO
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.tools.captcha.virtkeyboard import VirtKeyboard
from weboob.browser2.page import HTMLPage
diff --git a/modules/oney/browser.py b/modules/oney/browser.py
index 3f68bcc4..088f8e36 100644
--- a/modules/oney/browser.py
+++ b/modules/oney/browser.py
@@ -19,7 +19,7 @@
from weboob.capabilities.bank import Account
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.browser2 import LoginBrowser, URL, need_login
from .pages import LoginPage, IndexPage, OperationsPage
diff --git a/modules/oney/pages.py b/modules/oney/pages.py
index 7be4b2b5..0263f0b0 100644
--- a/modules/oney/pages.py
+++ b/modules/oney/pages.py
@@ -28,7 +28,7 @@ from weboob.tools.captcha.virtkeyboard import MappedVirtKeyboard, VirtKeyboardEr
from weboob.browser2.page import HTMLPage, method, LoggedPage, pagination
from weboob.browser2.elements import ListElement, ItemElement
from weboob.browser2.filters.standard import Env, CleanDecimal
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
class Transaction(FrenchTransaction):
diff --git a/modules/pastealacon/browser.py b/modules/pastealacon/browser.py
index 8cf10382..caf6a16a 100644
--- a/modules/pastealacon/browser.py
+++ b/modules/pastealacon/browser.py
@@ -23,7 +23,7 @@ from weboob.capabilities.paste import BasePaste, PasteNotFound
from weboob.browser2.filters.standard import CleanText, DateTime, Env, RawText, Regexp
from weboob.browser2.page import HTMLPage, method, PagesBrowser, URL
from weboob.browser2.elements import ItemElement
-from weboob.tools.exceptions import BrowserHTTPNotFound
+from weboob.core.exceptions import BrowserHTTPNotFound
class Spam(Exception):
diff --git a/modules/pastebin/browser.py b/modules/pastebin/browser.py
index 57ffca9b..5c79e1d2 100644
--- a/modules/pastebin/browser.py
+++ b/modules/pastebin/browser.py
@@ -26,7 +26,7 @@ from weboob.browser2.elements import ItemElement
from weboob.browser2.filters.standard import Base, CleanText, DateTime, Env, Filter, FilterError, RawText
from weboob.browser2.filters.html import Attr
from weboob.browser2.page import method, RawPage
-from weboob.tools.exceptions import BrowserHTTPNotFound, BrowserIncorrectPassword, BrowserUnavailable
+from weboob.core.exceptions import BrowserHTTPNotFound, BrowserIncorrectPassword, BrowserUnavailable
class PastebinPaste(BasePaste):
diff --git a/modules/poivy/browser.py b/modules/poivy/browser.py
index 7b4c386a..f817cf8e 100644
--- a/modules/poivy/browser.py
+++ b/modules/poivy/browser.py
@@ -18,7 +18,7 @@
# along with weboob. If not, see .
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import HomePage, LoginPage, HistoryPage, BillsPage, ErrorPage
diff --git a/modules/poivy/pages.py b/modules/poivy/pages.py
index d6a869df..abf22f53 100644
--- a/modules/poivy/pages.py
+++ b/modules/poivy/pages.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see .
-from weboob.tools.exceptions import BrowserBanned
+from weboob.core.exceptions import BrowserBanned
from weboob.browser2.page import HTMLPage, LoggedPage, method, pagination
from weboob.browser2.elements import ListElement, ItemElement
from weboob.browser2.filters.standard import CleanText, CleanDecimal, Field, DateTime, Format
diff --git a/modules/redmine/module.py b/modules/redmine/module.py
index 3f403e38..c33bd891 100644
--- a/modules/redmine/module.py
+++ b/modules/redmine/module.py
@@ -26,7 +26,7 @@ from weboob.capabilities.bugtracker import CapBugTracker, Issue, Project, User,
Query, Change
from weboob.capabilities.collection import CapCollection, Collection, CollectionNotFound
from weboob.tools.backend import Module, BackendConfig
-from weboob.tools.exceptions import BrowserHTTPNotFound
+from weboob.core.exceptions import BrowserHTTPNotFound
from weboob.tools.value import ValueBackendPassword, Value
from .browser import RedmineBrowser
diff --git a/modules/tinder/browser.py b/modules/tinder/browser.py
index 5b4f2fed..0d01d5e1 100644
--- a/modules/tinder/browser.py
+++ b/modules/tinder/browser.py
@@ -21,7 +21,7 @@
import re
from weboob.browser2 import DomainBrowser, HTMLPage, Profile
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from weboob.tools.json import json
diff --git a/modules/twitter/module.py b/modules/twitter/module.py
index cc35448e..7e87b454 100644
--- a/modules/twitter/module.py
+++ b/modules/twitter/module.py
@@ -23,7 +23,7 @@ from weboob.tools.backend import Module, BackendConfig
from weboob.capabilities.messages import CapMessages, Thread, CapMessagesPost
from weboob.capabilities.collection import CapCollection, CollectionNotFound, Collection
from weboob.capabilities.base import find_object
-from weboob.tools.exceptions import BrowserForbidden
+from weboob.core.exceptions import BrowserForbidden
from .browser import TwitterBrowser
import itertools
diff --git a/modules/vimeo/pages.py b/modules/vimeo/pages.py
index 6e9c8173..be44ee9a 100644
--- a/modules/vimeo/pages.py
+++ b/modules/vimeo/pages.py
@@ -20,7 +20,7 @@
from weboob.capabilities.video import BaseVideo
from weboob.capabilities.image import BaseImage
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
from weboob.browser2.elements import ItemElement, ListElement
from weboob.browser2.page import HTMLPage, method, pagination, JsonPage
from weboob.browser2.filters.standard import Regexp, Env, CleanText, DateTime, Duration, Field
diff --git a/modules/wellsfargo/browser.py b/modules/wellsfargo/browser.py
index 82f0e89c..b9c87c16 100644
--- a/modules/wellsfargo/browser.py
+++ b/modules/wellsfargo/browser.py
@@ -22,7 +22,7 @@ from time import sleep
from weboob.capabilities.bank import AccountNotFound
from weboob.browser2 import LoginBrowser, URL, need_login
-from weboob.tools.exceptions import BrowserIncorrectPassword
+from weboob.core.exceptions import BrowserIncorrectPassword
from .pages import LoginPage, LoginRedirectPage, LoggedInPage, SummaryPage, \
DynamicPage
diff --git a/weboob/browser2/exceptions.py b/weboob/browser2/exceptions.py
index 6c5c6585..54260d00 100644
--- a/weboob/browser2/exceptions.py
+++ b/weboob/browser2/exceptions.py
@@ -18,7 +18,7 @@
# along with weboob. If not, see .
from requests.exceptions import HTTPError
-from weboob.tools.exceptions import BrowserHTTPError, BrowserHTTPNotFound
+from weboob.core.exceptions import BrowserHTTPError, BrowserHTTPNotFound
class HTTPNotFound(HTTPError, BrowserHTTPNotFound):
diff --git a/weboob/browser2/filters/javascript.py b/weboob/browser2/filters/javascript.py
index 290afc9d..51546b9d 100644
--- a/weboob/browser2/filters/javascript.py
+++ b/weboob/browser2/filters/javascript.py
@@ -22,7 +22,7 @@ import re
from ast import literal_eval
from weboob.browser2.filters.standard import Filter, Regexp, RegexpError
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
__all__ = ['JSPayload', 'JSVar']
diff --git a/weboob/browser2/filters/standard.py b/weboob/browser2/filters/standard.py
index f806c0c3..7a391579 100644
--- a/weboob/browser2/filters/standard.py
+++ b/weboob/browser2/filters/standard.py
@@ -28,7 +28,7 @@ from dateutil.parser import parse as parse_date
from weboob.capabilities.base import empty
from weboob.tools.compat import basestring
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
from weboob.browser2 import URL
from weboob.tools.log import getLogger
diff --git a/weboob/tools/exceptions.py b/weboob/core/exceptions.py
similarity index 100%
rename from weboob/tools/exceptions.py
rename to weboob/core/exceptions.py
diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py
index c4d37f5e..7720030f 100644
--- a/weboob/core/repositories.py
+++ b/weboob/core/repositories.py
@@ -31,7 +31,7 @@ from contextlib import closing
from compileall import compile_dir
from io import BytesIO
-from weboob.tools.exceptions import BrowserHTTPError, BrowserHTTPNotFound
+from weboob.core.exceptions import BrowserHTTPError, BrowserHTTPNotFound
from .modules import LoadedModule
from weboob.tools.log import getLogger
from weboob.tools.misc import to_unicode
diff --git a/weboob/tools/application/base.py b/weboob/tools/application/base.py
index e3ccad96..b8e083fb 100644
--- a/weboob/tools/application/base.py
+++ b/weboob/tools/application/base.py
@@ -32,7 +32,7 @@ from weboob.capabilities.base import ConversionWarning, BaseObject
from weboob.core import Weboob, CallErrors
from weboob.core.backendscfg import BackendsConfig
from weboob.tools.config.iconfig import ConfigError
-from weboob.tools.exceptions import FormFieldConversionWarning
+from weboob.core.exceptions import FormFieldConversionWarning
from weboob.tools.log import createColoredFormatter, getLogger, DebugFilter, settings as log_settings
from weboob.tools.misc import to_unicode
from .results import ResultsConditionError
diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py
index 8224b95d..37963a30 100644
--- a/weboob/tools/application/console.py
+++ b/weboob/tools/application/console.py
@@ -32,7 +32,7 @@ from weboob.capabilities.account import CapAccount, Account, AccountRegisterErro
from weboob.core.backendscfg import BackendAlreadyExists
from weboob.core.modules import ModuleLoadError
from weboob.core.repositories import ModuleInstallError
-from weboob.tools.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError
+from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden, BrowserSSLError
from weboob.tools.value import Value, ValueBool, ValueFloat, ValueInt, ValueBackendPassword
from weboob.tools.misc import to_unicode
from weboob.tools.ordereddict import OrderedDict
diff --git a/weboob/tools/application/qt/qt.py b/weboob/tools/application/qt/qt.py
index 521e4869..58d3b1df 100644
--- a/weboob/tools/application/qt/qt.py
+++ b/weboob/tools/application/qt/qt.py
@@ -34,7 +34,7 @@ from weboob.core.ouiboube import Weboob, VersionsMismatchError
from weboob.core.scheduler import IScheduler
from weboob.core.repositories import ModuleInstallError
from weboob.tools.config.iconfig import ConfigError
-from weboob.tools.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden
+from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserForbidden
from weboob.tools.value import ValueInt, ValueBool, ValueBackendPassword
from weboob.tools.misc import to_unicode
from weboob.capabilities import UserError
diff --git a/weboob/tools/browser/browser.py b/weboob/tools/browser/browser.py
index b353f245..a2d0817d 100644
--- a/weboob/tools/browser/browser.py
+++ b/weboob/tools/browser/browser.py
@@ -49,7 +49,7 @@ from contextlib import closing
from gzip import GzipFile
import warnings
-from weboob.tools.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserPasswordExpired, BrowserForbidden, BrowserBanned, BrowserHTTPNotFound, BrowserHTTPError, FormFieldConversionWarning, BrowserSSLError
+from weboob.core.exceptions import BrowserUnavailable, BrowserIncorrectPassword, BrowserPasswordExpired, BrowserForbidden, BrowserBanned, BrowserHTTPNotFound, BrowserHTTPError, FormFieldConversionWarning, BrowserSSLError
from weboob.tools.decorators import retry
from weboob.tools.log import getLogger
from weboob.tools.mech import ClientForm
diff --git a/weboob/tools/capabilities/bank/transactions.py b/weboob/tools/capabilities/bank/transactions.py
index 1396f726..81db9e00 100644
--- a/weboob/tools/capabilities/bank/transactions.py
+++ b/weboob/tools/capabilities/bank/transactions.py
@@ -27,7 +27,7 @@ from weboob.capabilities import NotAvailable, NotLoaded
from weboob.tools.misc import to_unicode
from weboob.tools.log import getLogger
-from weboob.tools.exceptions import ParseError
+from weboob.core.exceptions import ParseError
from weboob.browser2.elements import TableElement, ItemElement
from weboob.browser2.filters.standard import Filter, CleanText, CleanDecimal, TableCell