refactor UPlatform