The concept of unnamed modules helped us to run our non-modular application on Java 9. The use of both module path and classpath helped us to run the partly modular application while we were doing the migration. We started with modularizing those code base which were not dependent on any non-modular code. And any code base which we couldn't modularize, we converted them into automatic modules. And thereby enabling us to modularize the code which was dependent on such code base. Eventually, we ended up with a completely modular application.