a bit of tweaking, may need to be changed more but meh