catch more edge cases