some more refactoring of PlatformManager