docs: function create(config, callback) {
  	var ds
  
  	var implementation
  	var logEnabled = true
  
  	if (typeof(config) === 'string') {
  		implementation = config
  	} else {
  		implementation = config.implementation
  
  		if (config.logEnabled !== undefined) {
  			logEnabled = config.logEnabled
  		}
  	}
  
  	if (implementation === 'PostgresDatastore') {
  		if (!PostgresDatastore)
  			throw new Error('try npm install pg first')
  
  		ds = new PostgresDatastore(config)
  	} else if (implementation === 'MysqlDatastore') {
  		if (!MysqlDatastore) {
  			throw new Error('try npm install mysql first')
  		}
  
  		ds = new MysqlDatastore(config)
  	} else if (implementation === 'DevelopmentDatastore'){
  		ds = new DevelopmentDatastore()
  	} else if (implementation === 'BlackholeDatastore'){
  		ds = new BlackholeDatastore()
  	} else {
  		throw new Error('Must specify implementation')
  	}
  
  	// async
  	ds.create(function(err) {
  		if (!err && logEnabled) {
  			debug('** datastore connected, implementation is %s **', implementation)
  		}
  
  		if (callback) {
  			if (err) {
  				err.implementation = implementation
  			}
  			callback(err, ds)
  		}
  	})
  
  	return ds
  }