added client-side registration