This reverts commit 5663bf20. The cyclic dependency problem is addressed now. This is the ~fifth attempt to land this change.