Alex

Pull of Alex's changes before we add in Caiden's. Several commits may come after as I clean it up to stable.