Spin-off from bug #187385.
Created attachment 371176 [details] WIP
Created attachment 371726 [details] WIP
Created attachment 372735 [details] WIP
Created attachment 377119 [details] WIP -- updated