copied from -ghost repo