[PD-dev] Separating GUI from the engine in PD