refact the list