Merging Daneyon's work plus contrib info.