implemented R3