revised server-side processing