final client-side step added