I do not think that my implementation of most character controllers is "correct."
Could you please provide a 'playable' example in this project, so we can see how it works?
Maybe with something that lets you change some of the more important variables live?