Resolve [#2085], [#2086] and [#2087].
Implement [#2072], [#2088], [#2089], [#2090], [#2091], [#2092] and [#2093].