dirty implementation of #242 with holes