This struct should have documentation with examples ideally (plus documentation on the methods below)