implemented discovery