complete with silly reversing things - all working