Refactored the three submodules inside the camera module

Please check and merge.