finally understant KMP