uhhh lots of changes hope git don't break it