document internal methods