still trying to implement poisoned reverse, made progress, less crazy loops