implemented the list interface