Now compiling on Linux; also made some minor design changes before an untimely computer death - these are being committed but may not be final