Implemented (first) and (rest)