first analytic routines