Big update. Have been lazy and not commiting