def __call__(self):
return self.value<EOL>
__call__ will return the current value

        By default this invokes `self.value`
        so, any additional functionality that sub-classes implement,
        (such as caching the results of
        complicated operations needed to compute the value)
        will also be invoked