I might as well offer my code too Q3EFJQGX
There's been plenty of 'how to' explanations written right above