Does block need to be a public val? If not, I would even remove val entirely.