use TEXT_VALUE to hide internals