As we saw in the previous chapters, Kotlin features, such as top-level functions, top-level properties, and extension functions, can all be used from our existing Java code. This is important when working in a mixed code base using both Java and Kotlin. However, by default, the syntax for working with these features from Java may not be as clean or meaningful as we would like them to be.
To improve this aspect of interoperability, it's possible to modify the name of a class that's generated by the Kotlin compiler. By controlling how these generated classes are named, we can make it easier to consume Kotlin features, such as top-level and extension functions, when working in Java. Let's explore this by looking at a simple top-level function example.