fix list implementation