added initial list() implementation