Nice, I do a similar thing. Usually I put my states on a stack though, guess it depends on your use case. Any particular reason behind making those methods internal?
No special reason really. I made them internal instead of public out of force of habit of following coding conventions at my day job.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.