added tail operation