Use  list instead of vector