A lightweight, platform agnostic framework for Dependency Injection, event based domain driven architecture with CQRS