implements a rough document creation and other functionalities