broke paginationg/taggable out into separate modules

also updated the pagination logic to handle different queries