omg such work much in progress
cleaned up the code a bunch and it now works a lot better