copy from haps