restructuring VariableDocument into DocumentProxy and adding PageLoaders strategies.