------------------------------+ +------------------------------ -----------------+ +-------------------------------------------