re-implemented the shmreceiver