Original Soruce code.