redo P4 in C#