A messy update

Will do some code tiding when i get some time