new list methods; code refacoring