This is really good and comprehensive, thanks for sharing!