rework IPlatformAdaptor