partly reverted c6dc5bcc52604e8629b8eccac3581a5bfc79e826