programming with holes