adds to list; improvements