completes client and server side refactor