Added `Document` struct