why `assert` rather than `checkNotNull(platform, "platform")`? This is a public method, so I'd prefer to throw the exception rather than replace platform silently if misused in production.