rewrote ghost to be a lot simpler and to operate a lot better