edge case bug fixing