hoooollly shit that was the most painful debugging experience of my life and i'm not even finished... have to manually execute IO in the signal because it's not coupled to the main execution thread, it seems