Not sure I get the rationale behind Kotlin’s primary constructor. It seems like it’s like the designated initializer, but it can’t contain code? That last restriction flummoxes me. WHY?