Revert broken commits

This reverts commits:
788376d6af16a525b3a2a689e21b7403af89a214
460ea27f36744c552a9c4097f6b84570e9269891
acbee9a157a1388c3245b4376ce5865164b23689
074ba15ef938829ea06d88013d6f30bdc46f7453