Uptaded framework

This reverts commit a5c1da92097ff067849221b5556ac90d2cf4d798, reversing
changes made to 606729e8c62916271ceb27ce5c737a116c6646fa.