Change-Id: I78fa5fdb3648adfaa40f6d5f3c255666a85e2761
Change-Id: I3a6e9e6222e6219484c6903325c985bff8af39ef
Most credit goes to: Roman Skylarov Additional integration and refactoring by myself. *** COMPLETELY UNTESTED *** Change-Id: Ia64c36d92e0214c6b15f7a868df286f8113ea27b