Down the line it would be great to have docstrings explaining each of these struct definitions (either in this PR or future one).