This is still not completely done and there might be pointers to things that don't exist yet.
This reverts commit 0cac68d3bed3e6bf8ec2eb994858e4a179046941.