if self.datadir does not exist, make it