Update Kotlin example with closures, singleton tidy up etc