https://pavelon.dev/posts/api-as-dependency-part-2/