switched from sets to lists for sake of mutability