Lots of updates

check out the commits for more info