credit to mona.py for rop