should we make it `cov_struct`? maybe a bit easier to read