Broke out more internal methods into exposed private prototype methods for now until a formal api is created.