Some common DI patterns in scala