Updated for best practices