discovered a huge amount of unessacery copying of images, now passing far more image pointers to avoid overloaded copy constructors when passing objects into methods, doh!