add pagination and improve search. closes #1 closes #24