Updated with links, thanks and attribution