sign changes...so so many sign errors