Refactor
Add pagination