Thanks Tim Graham for the review and suggestions.
Thank-you Daniele Procida for the first draft and shaibi, Aymeric, and others for the reviews.