implement workspace service