rough implementation of list