Update with various changes submitted by Simon