analysis core function done