curious: why public? i don't see uses outside this class; maybe protected?