add unit test, paging etc