Document framework