[WIP] on platform interface with prepare

I'm happy with the solution presented so far. The non-env variant works for my purposes.