Should you also deal with the case of having empty tags, something like ",,foo"?  Probably not a common case, but could it happen?  Also, could tags ever be an array already or will it always come in as a string?