Better performance still again (code a little untidy at the moment though).  Still not to my satisfaction though!