updated internal methods