Restructured to best practices.