implementation about single list