Version backup

This version has an error. The error is because I didn’t know how to
differentiate different types of RennService. Now I found a solution.
Back up in case.