made a few changes, but need to work with Ruinian on network stuff to really make sense of it