I have found it generally easier to approach a design (engine or otherwise) as a complete start-over, and work it from the ground up, instead of trying to fix someone else's design.
Fixing someone elses design can take 10 times longer than just staring over, and even after you fix a design, you can still have bugs popping up later.
Designs need to be started after a great deal of thought and planning have taken place, so that you incrementally move forward in progressive steps through the design, with verification after each step (such as rotating the assembled parts in 3D simulation to make sure there are no problems).
The result of good planning is a good design foundation, and a good design that does not have problems.
End of stump speech.
.
Fixing someone elses design can take 10 times longer than just staring over, and even after you fix a design, you can still have bugs popping up later.
Designs need to be started after a great deal of thought and planning have taken place, so that you incrementally move forward in progressive steps through the design, with verification after each step (such as rotating the assembled parts in 3D simulation to make sure there are no problems).
The result of good planning is a good design foundation, and a good design that does not have problems.
End of stump speech.
.