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