Add some more cases, refactor to hash & per page