Many new changes

Haven't committed in a while