refactoring api name and add implement for singly linked list