small restructure + error handling (still need to paginate then it should be good)