just an experimental implementation https://docs.google.com/presentation/d/16wjuIHQZ3u4_paORjRYFsR5KfAhGtqe1-fb0S_Y695c/edit#slide=id.g15dd0036195_0_4
related to #419 #418 #412
This change is