Updated to comply with best practices.