As of now, we parse headers and query parameters on every initialisation of Request object. A better approach could be doing that lazy by using some getters to not spent effort on parsing query params and headers if user don't need to read them. We'll also need to use getters for many other properties(host, ip, protocol etc) to not parse headers without really needing them.