improve value resolver