fixed some edge cases