some classes moved from core to shared