implement Document storage