# Angel3 Container  [](https://dart.dev/null-safety) [](https://gitter.im/angel_dart/discussion) [](https://github.com/dukefirehawk/angel/tree/master/packages/container/angel_container/LICENSE) A better IoC container for Angel3, ultimately allowing Angel3 to be used with or without `dart:mirrors` package. ```dart import 'package:angel3_container/mirrors.dart'; import 'package:angel3_framework/angel3_framework.dart'; import 'package:angel3_framework/http.dart'; @Expose('/sales', middleware: [process1]) class SalesController extends Controller { @Expose('/', middleware: [process2]) Future<String> route1(RequestContext req, ResponseContext res) async { return "Sales route"; } } bool process1(RequestContext req, ResponseContext res) { res.write('Hello, '); return true; } bool process2(RequestContext req, ResponseContext res) { res.write('From Sales, '); return true; } void main() async { // Using Mirror Reflector var app = Angel(reflector: MirrorsReflector()); // Sales Controller app.container.registerSingleton<SalesController>(SalesController()); await app.mountController<SalesController>(); var http = AngelHttp(app); var server = await http.startServer('localhost', 3000); print("Angel3 server listening at ${http.uri}"); } ```