one hour and an half, re-implement the sll