diff --git a/src/hubgw/api/deps.py b/src/hubgw/api/deps.py
index d79a52f..7fed23e 100644
--- a/src/hubgw/api/deps.py
+++ b/src/hubgw/api/deps.py
@@ -1,11 +1,11 @@
 """Dependency providers for FastAPI."""
 
+from collections.abc import AsyncGenerator
 from fastapi import Depends, HTTPException, Header
 from sqlalchemy.ext.asyncio import AsyncSession
 from typing import Annotated
 
 from hubgw.context import AppContext
-from hubgw.core.config import AppSettings
 from hubgw.services.homes_service import HomesService
 from hubgw.services.kits_service import KitsService
 from hubgw.services.cooldowns_service import CooldownsService
@@ -20,7 +20,9 @@ async def get_context() -> AppContext:
     return AppContext()
 
 
-async def get_session(context: Annotated[AppContext, Depends(get_context)]) -> AsyncSession:
+async def get_session(
+    context: Annotated[AppContext, Depends(get_context)]
+) -> AsyncGenerator[AsyncSession, None]:
     """Get database session."""
     async with context.session_factory() as session:
         yield session
@@ -31,12 +33,11 @@ async def verify_api_key(
     context: Annotated[AppContext, Depends(get_context)]
 ) -> str:
     """Verify API key."""
-    if x_api_key != context.settings.API_KEY:
+    if x_api_key != context.settings.security.api_key:
         raise HTTPException(status_code=401, detail="Invalid API key")
     return x_api_key
 
 
-# Service dependencies
 def get_homes_service(session: Annotated[AsyncSession, Depends(get_session)]) -> HomesService:
     """Get homes service."""
     return HomesService(session)
diff --git a/src/hubgw/context.py b/src/hubgw/context.py
index 4b6c430..b535a0a 100644
--- a/src/hubgw/context.py
+++ b/src/hubgw/context.py
@@ -1,7 +1,7 @@
 """Application context singleton."""
 
 from sqlalchemy.ext.asyncio import AsyncEngine, async_sessionmaker, create_async_engine
-from hubgw.core.config import AppSettings
+from hubgw.core.config import APP_CONFIG
 
 
 class AppContext:
@@ -16,7 +16,7 @@ class AppContext:
     
     def __init__(self):
         if not hasattr(self, 'initialized'):
-            self.settings = AppSettings()
+            self.settings = APP_CONFIG
             self.engine: AsyncEngine = None
             self.session_factory: async_sessionmaker = None
             self.initialized = True
@@ -24,9 +24,10 @@ class AppContext:
     async def startup(self):
         """Initialize database engine and session factory."""
         self.engine = create_async_engine(
-            self.settings.DB_DSN,
-            pool_size=self.settings.DB_POOL_SIZE,
-            max_overflow=self.settings.DB_MAX_OVERFLOW
+            self.settings.database.dsn,
+            pool_size=self.settings.database.pool_size,
+            max_overflow=self.settings.database.max_overflow,
+            echo=self.settings.database.echo
         )
         self.session_factory = async_sessionmaker(
             self.engine,
diff --git a/src/hubgw/core/__init__.py b/src/hubgw/core/__init__.py
index fb31757..fc653bd 100644
--- a/src/hubgw/core/__init__.py
+++ b/src/hubgw/core/__init__.py
@@ -1 +1,6 @@
 """Core module for hubgw."""
+from .config import APP_CONFIG
+
+__all__ = [
+    "APP_CONFIG",
+]
\ No newline at end of file
diff --git a/src/hubgw/core/config.py b/src/hubgw/core/config.py
index a82feff..9294bb3 100644
--- a/src/hubgw/core/config.py
+++ b/src/hubgw/core/config.py
@@ -120,5 +120,4 @@ class Secrets(BaseSettings):
     )
 
 
-# Global configuration instance
 APP_CONFIG = Secrets()
diff --git a/src/hubgw/core/logging.py b/src/hubgw/core/logging.py
index e2e8af0..52effa0 100644
--- a/src/hubgw/core/logging.py
+++ b/src/hubgw/core/logging.py
@@ -2,12 +2,12 @@
 
 import sys
 from loguru import logger
-from hubgw.core.config import AppSettings
+from hubgw.core.config import APP_CONFIG
 
 
 def setup_logging():
     """Setup loguru logging configuration."""
-    settings = AppSettings()
+    settings = APP_CONFIG.app
     
     # Remove default handler
     logger.remove()
@@ -15,16 +15,16 @@ def setup_logging():
     # Add console handler
     logger.add(
         sys.stdout,
-        level=settings.APP_LOG_LEVEL,
+        level=settings.log_level,
         format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
         colorize=True
     )
     
     # Add file handler for production
-    if settings.APP_ENV == "prod":
+    if settings.env == "prod":
         logger.add(
             "logs/hubgw.log",
-            level=settings.APP_LOG_LEVEL,
+            level=settings.log_level,
             format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
             rotation="1 day",
             retention="30 days",
diff --git a/src/hubgw/main.py b/src/hubgw/main.py
index ab26d03..a498e29 100644
--- a/src/hubgw/main.py
+++ b/src/hubgw/main.py
@@ -1,32 +1,31 @@
 """FastAPI application factory."""
-
+from contextlib import asynccontextmanager
 from fastapi import FastAPI
 from hubgw.core.logging import setup_logging
 from hubgw.context import AppContext
 
 
+@asynccontextmanager
+async def lifespan(app: FastAPI):
+    """Application lifespan context."""
+    ctx = AppContext()
+    await ctx.startup()
+    yield
+    await ctx.shutdown()
+
+
 def create_app() -> FastAPI:
     """Create and configure FastAPI application."""
     app = FastAPI(
         title="HubGW",
         description="FastAPI Gateway for HubMC",
-        version="0.1.0"
+        version="0.1.0",
+        lifespan=lifespan
     )
     
     # Setup logging
     setup_logging()
     
-    # Initialize context
-    ctx = AppContext()
-    
-    @app.on_event("startup")
-    async def startup():
-        await ctx.startup()
-    
-    @app.on_event("shutdown")
-    async def shutdown():
-        await ctx.shutdown()
-    
     # Include routers
     from hubgw.api.v1.router import api_router
     app.include_router(api_router, prefix="/api/v1")