made PageDataCallback generic.