add hole and pull function