Revert "Revert bb5af02..a59ff0d"

This reverts commit 6ed07b730632d44d15ecf086a7fd2b32edb2c1a7.
Revert 22737c4..7fdeb56

This rolls back to commit 22737c4a28fb382e2179bd205b090cd025482f55.