perhaps more readable to use `self.exists` here?