refactor workspace update to use jackson