fix default val behavior