There should be separate tests for `empty` and `remove`