should be private + add getters?