I see that it shrinks, but I still think this might be the cause of the problem since you are removing the song from unplayed before getting it again. I think that if you change it to this:

```java
if(unPlayed.size()>0){
    SongMetadata song = unPlayed.get(0);
    played.add(song);
    unPlayed.remove(0);
    return song;
}
```
Then it will fix your problem