Eason Note:
Code structure enhancement, to fix my 1st error commit