switched to fewer lines, lost some functionality in dealing with 0s.