add getters to expose state