I think a good first step might be to separate between the camera model and the machinery of finding all the parameters. This way multiple implementations of this machinery can be implemented – and even used – in parallel. So how about I start with a basic CameraModels repo and we build on that?