Rebuild repeat, split to collection and list, refactor yield and route