various off by 1 errors fixed