complete check for best practices