Update article, fix some best practices.