(@astrofrog - is there reason to have the `__call__` method defined in the `ABC`?)