Can you elaborate?
Do you mean a factory method with all abstract fields? And with default values for each of them?
```scala
  object RequestHeader {
    // “The first "q" parameter (if any) separates the media-range parameter(s) from the accept-params.”
    val qPattern = ";\\s*q=([0-9.]+)".r

    def apply(id: Long = 0l, tags: Map[String, String] = Map.empty....) = new RequestHeader {
      def id: Long = id
      def tags: Map[String, String] = tags
      [...]
```
What is the positive effect for the production code?
For the moment, anynomous instances from RequestHeader are created by PlayDefaultUpstreamHandler#createRequestHeader for example.