I would like to describe a pure-Scala approach to modularity that we are successfully using in a couple of our Scala projects. But let’s start with how we do Dependency Injection (see also my other blogs). Each class can have dependencies in the form of constructor parameters, e.g.: class WheatField class Mill(wheatField: wheatField) class CowPasture class DiaryFarm(cowPasture: CowPasture) class B