making internal state private