val and mentions directly return the result instead of requiring callbacks