analysis logic implemented