refactor into proper routes, add animation, add grouped list