Minor change
Minor change
Refactor code
Divide hardware dependent and independent code