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