factor out docs