semantics and privatize some methods