Okay, I understand the code a bit better now. Can we group the public methods first followed by the private methods? I think the ways to interact with this class can be updated a bit. See other comments.