Declaring all these constructor parameters by position seems very fragile.