added more thorough analysis