refactoring, added CameraService