so many changes, code is a bit unstable but needed a save spot to make sure nothing goes wrong