Empty strings are worrying, they should rather be optional, saves all kinds of trouble further down the line