why ``size()`` as opposed to ``.length``? I am fine with treating 0 as falsy, though.