One more prototype Prototype2, a little different from Prototype0 for now.
Merge.