Several improvements and additions.