implement si4_rest