hold piece implemented