Implemented on top of ring.