initial WiPi implementation