Lots of changes, particularly exception catching and 'new' command