1TODO:
2- Clean up coding style to meet kernel standard.
3