make DocumetImpl header only :)