just realized .val should always be a function .va() in order to support never null function calls. this is right before a refactor.