Migrate to Kotlin