partial step towards implementing ring_t