completes client-side refactor