with original head file
clean perfect version