Moved some messy code from InWorld::Update() to utility methods