rework doWorkspace handler to handle non-workspace kinds