Just a simple question. Shouldn't FilmFacade constructor be defined as package private? Right now it is defined as public but client code cannot instantiate it with it because it's dependencies are package private so client code (for example in different package) cannot use it. It can be instantiated only by using Spring and having FilmConfiguration class scanned.