Empty takes falsey values into account that's why I didn't use it, I have had some nasty run ins with empty recently and I prefer to not use it if I can help it, it has some really stupid quirks