Initial release of the code. It is a little hackish and needs loads of polish but is reasonably functional.