diagnostic algorithm