Refactor domain package to avoid the problem of 1 user request resulting in 9 gitlab source cache requests
Description
Currently whenever a user makes a single request to pages, it results in 9 retrieval of a domain data from gitlab source cache.
We might need to refactor our code a little bit so that we have an intermediate domain object with a bunch of lookups cache in a type instance.