switch from tuples to lists because the optimizer is all about mutability