add 'rest' function