implement workspace refresh