add getFirst, getLast function