still chaotic, implementing RX