I also agree with @thomasnield about not over engineering anything. Kotlin is pragmatic, so is TornadoFX - and so should we be. Almost everything in a typical TFX application is type safe and refactorable, so don't sweat it. Do what works, but be open to refactoring as your application grows. For small problem domains, I would even put business logic directly in a View, then move it to a Controller when the app or code grows.