Add pagination;
Do a lot of refactor jobs.