support both readable and truly_readable