Make internal methods private, and rearrange method order with public methods on top
Fix tests to use public methods