add page count TODO async