Change-Id: I35a3021768e386a5ce922c8e24128d0bc3a039be
Also implement lots of fixes and improvements. fixes: #3381 Change-Id: Ibe6664da00756ae5813b90f190295045808b2ff0