add self discovery