session and connection don't need to be public methods