trying to minimise lines a little and integrate the early return idea from confident ruby.
is what I have written cumbersome or prone to causing problems in some way I should know/ go read about? 

happy to re-write as you've suggested