https://sgryt.com/posts/dependency-inversion-principle-in-lambda/