looks like the best way to do the state thing after all is global so i should use async mutexes so stuff doesn't block.
im sorry if you have to look at the sites.rs file.