Thanks to the following individuals for contributing code to this project. Oleg Kiselyov John Lato Paulo Tanimoto In addition to the above, many thanks for comments and advice provided by: Johan Tibell