Make first test pass trivially
Make second test pass
Make third test pass
Remove unnecessary complexity
Isolate genres into single object
Replace conditional with polymorphism