-- estimation implementation